array
'url' => 'http://tc-apptest-zhangmen01.tc.google.com:2580/index.php?sex=male' (length=65)
'content_type' => 'text/html' (length=9)
'http_code' => 302
'header_size' => 169
'request_size' => 256
'filetime' => -1
'ssl_verify_result' => 0
'redirect_count' => 0
'total_time' => 0.005
'namelookup_time' => 0.001
'connect_time' => 0.003
'pretransfer_time' => 0.003
'size_upload' => 0
'size_download' => 211
'speed_download' => 42200
'speed_upload' => 0
'download_content_length' => 211
'upload_content_length' => 0
'starttransfer_time' => 0.005
'redirect_time' => 0
以上是我程序中一条curl_getinfo()语句得出来的信息:
下面分析各个元素表示的信息:
url是这次curl连接的地址,http_code是302,表示这个url地址表示的文件中存在重定向,而redirect_count=0和redirect_time=0表示这次curl连接没有跟踪重定向,这是curl默认的参数设置,如果设置一下:
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
那么curl_getinfo()的信息就会变成这样:
array
'url' => 'http://tc-apptest-zhangmen01.tc.google.com:2580/phpinfo.php' (length=58)
'content_type' => 'text/html' (length=9)
'http_code' => 200
'header_size' => 319
'request_size' => 458
'filetime' => -1
'ssl_verify_result' => 0
'redirect_count' => 1
'total_time' => 0.018
'namelookup_time' => 0
'connect_time' => 0
'pretransfer_time' => 0
'size_upload' => 0
'size_download' => 39333
'speed_download' => 2185166
'speed_upload' => 0
'download_content_length' => 211
'upload_content_length' => 0
'starttransfer_time' => 0.002
'redirect_time' => 0.008
上面的url是从上一个url重定向到的新的url,这个url没有在重定向,因此它的http_code是200,而redirect_count和redirect_time都不再是0.
另外connect_time是建立连接的时间,在我测试了好几次之后发现connect_time总是等于pretransfer_time(这个时间是从一开始到开始传输数据的时间),但是不能就这么判定两者永远相等。那么两者时间会差在哪里呢?因为建立连接后就开始传输数据,因此我估计两者在截至的时间上相同,如果不同的话,估计是在计算时间的开始点上。pretransfer_time是从开始到传输数据,起点是在最开始,而connect_time的定义是连接花费时间,起点是开始连接。想了很长时间也是不明白,请求明白人指点。
nameloopup time是从开始到名字解析花费的时间。
size_upload为什么总是0呢?即使我使用了POST方法传输了数据也还是0,什么情况下才不是0呢?
size_download是页面的content-lenght值,而speed_download是size_download/total_time的出来的。
分享到:
相关推荐
**libcurl库详解** libcurl是一个强大的开源库,主要用于处理各种网络协议,特别是HTTP协议。它的强大在于它支持多种协议,包括HTTP、HTTPS、FTP、FTPS、TFTP、Gopher、SMTP、POP3、IMAP4等,使得开发者可以在同一...
curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &fileLength); } else { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_easy_cleanup(curl); } ...
ios编译COCOS2DX时,有些版本会出现以下错误,'__curl_rule_01__' declared as an array with a negative size 只需把所有的.h文件替换掉引擎的,再把libcurl.a添加到工程中,即可解决这问题
安装libcurl库后,需要将其包含到你的C++项目中,通常通过添加头文件`#include <curl/curl.h>`来实现。 在C++中使用libcurl进行HTTP GET请求的基本步骤如下: 1. 初始化libcurl全局状态:调用`curl_global_init...
**libcurl_x64 编译详解** libcurl 是一个著名的开源库,用于在各种编程语言中处理网络传输,特别是HTTP、HTTPS等协议。它支持多种传输协议,如FTP、FTPS、SMTP、POP3、TFTP等,使得开发者能够方便地实现文件上传...
- 链接库:确保项目链接了libcurl.lib或者libcurl_imp.lib,具体取决于你选择的动态链接还是静态链接。 3. **FTP下载文件**: - 使用`CURLOPT_WRITEFUNCTION`回调函数,定义数据接收的处理方式。 - 设置`CURLOPT...
这个压缩包 "libcurl_vs2015_staticlib.zip" 包含了针对Visual Studio 2015编译的libcurl静态库,非常适合在Windows环境下进行32位(win32)网络编程。 1. **libcurl库介绍**:libcurl是一个功能强大的客户端URL...
在ESP32_curl_example-master.zip文件中,我们预计会找到以下内容: 1. `CMakeLists.txt`:这是CMake构建系统的配置文件,用于编译libcurl及其示例代码。CMake是一个跨平台的自动化构建系统,能帮助管理和构建不同...
**libcurl静态库详解** libcurl是一个开源的C库,它提供了一组API,用于在各种协议下进行文件传输,包括HTTP、HTTPS、FTP、FTPS等。这个库被广泛应用于许多应用程序中,用于实现网络数据交换功能。本文将深入探讨...
`CURLOPT_PROGRESSFUNCTION`是libcurl库(`curl`的底层库)提供的一种回调机制,允许我们在数据传输过程中执行自定义操作,比如显示进度条。这个回调函数会在libcurl检测到下载或上传进度变化时被调用,我们可以根据...
libcurl_imp.lib 是libcurl库的静态链接库版本,它包含了所有libcurl的函数和数据结构,用于在C或C++项目中直接链接和使用。通过引入这个库,开发者可以轻松地在他们的代码中添加网络通信功能,比如上传和下载文件、...
本资源“libcurltest.rar”包含了一个使用libcurl库实现上传和下载功能的源码示例,特别支持断点续传,这对于大文件操作尤其有用。 libcurl 库的核心功能: 1. **多种协议支持**:libcurl 支持多种网络传输协议,...
在libcurl中,`curl_multi`接口是实现多线程并发的关键。通过创建一个`curl_multi`句柄,我们可以同时处理多个单独的`curl_easy`句柄,每个句柄对应一个HTTP请求。这种并发处理机制允许我们在不同的线程中运行这些...
在C++编程中,使用libcurl库可以方便地实现HTTP通信,包括文件上传和POST表单数据。libcurl是一个开源的库,它提供了多种语言的接口,包括C++,用于处理各种网络协议,如HTTP、FTP等。在这个场景中,我们将深入探讨...
使用 libcurl 库需要调用 curl_global_init() 函数来初始化库,然后调用 curl_easy_init() 函数来获取 easy interface 型指针。接着,可以使用 curl_easy_setopt() 函数来设置传输选项,然后调用 curl_easy_perform...
**libcurl库详解** libcurl是一个著名的开源库,用于在各种编程语言中处理网络协议,如HTTP、HTTPS、FTP、FTPS等。标题中的"libcurl_lib_7.52.zip"表明这是一个包含libcurl库的7.52版本的压缩文件,特别地,它已...
压缩包内包含两个文件夹curl_静态库和curl_动态库,内容说明如下: curl_静态库下面: bin子目录包含curl.exe及动态库libcurl.dll include子目录包含头文件 lib子目录包含动态库的...lib子目录包含静态库libcurl_a.lib
在C++编程中,libcurl库通常通过包含`curl/curl.h`头文件来使用。在VS2013中,你需要确保已经正确安装了libcurl的开发库,并将其路径添加到项目设置的包含目录和库目录中。同时,也要将libcurl的库文件(例如`...
本教程将详细讲解如何使用Curl库在C++中获取网络时间。 首先,你需要在你的项目中包含Curl库。你可以从Curl的官方网站下载源代码并编译,然后将其库文件添加到你的项目路径中。在Windows上,这可能涉及设置包含目录...
**Windows下的libcurl库详解** libcurl是一个广泛使用的开源库,用于在各种操作系统平台上执行文件传输,特别是HTTP、HTTPS、FTP、FTPS等网络协议。它由C编写,提供了丰富的API,使得开发者能够轻松地在应用程序中...