libcurl的C语言接口使用过程
来源:互联网 发布:淘宝工商注册代理公司 编辑:程序博客网 时间:2024/05/21 08:45
全局初始化
libcurl使用之前必须执行全局初始化,只能执行一次。curl_global_cleanup同理curl_global_init(CURL_GLOBAL_ALL);
使用curl_version_info来查看所运行的libcurl细节,看看它支持一些什么功能
使用easy interface
为了使用easy interface,必须创建一个easy hadle。CURL *easy_handle = curl_easy_init();
不应该在不同的线程中使用同一个easy_handle
设置handle属性
通过curl_easy_setopt来设置handle的属性设置请求链接来下载资源
int ret = curl_easy_setopt(easy_handle, CURLOPT_URL, "http://speedtest.wdc01.softlayer.com/downloads/test10.zip");
可以通过curl_easy_reset来重置curl_easy_setopt设置的内容,把它们还原成默认值
设置CURLOPT_VERBOSE为1L来输出详细信息以供调试,如果还不够,继续设置CURLOPT_DEBUGFUNCTION
执行网络请求
上面的一些过程仅仅是设置好了handle的参数,还没有真正的执行网络请求。
调用curl_easy_perform将执行网络请求
ret = curl_easy_perform(easy_handle);if (ret != CURLE_OK){cout << ret << ":" << curl_easy_strerror(static_cast<CURLcode>(ret)) << endl;switch (ret){case CURLE_HTTP_RETURNED_ERROR:{int code = 0;curl_easy_getinfo(easy_handle, CURLINFO_RESPONSE_CODE, &code);printf("HTTP error code:%d\n", code);break;}}}
curl_easy_perform会返回一个编号来告诉你成功或者失败,你可以使用CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ERRORBUFFER, char *buf);来获得更多的错误信息
如果想重新发起一个新的请求,官方推荐重复利用这个easy_handle,这样libcurl会尝试重复利用先前的连接
curl_easy_pause来暂停或者恢复一个连接
释放资源
当请求执行完成之后可以释放掉handle资源
curl_easy_cleanup(easy_handle);当不再需要发送网络请求时,释放全局资源
curl_global_cleanup();
总结
libcurl使用顺序
首先初始化全局设置:curl_global_init
初始化easy_handle:curl_easy_init
设置handle的参数:curl_easy_setopt
执行请求:curl_easy_perform
释放handle:curl_easy_cleanup
释放全局资源:curl_global_cleanup
libcurl教程:http://www.cnblogs.com/suiyingjie/archive/2012/11/12/2766332.html
官网:http://curl.haxx.se/
libcurl C API:http://curl.haxx.se/libcurl/c/
C++使用libcurl做HttpClient :http://blog.csdn.net/huyiyang2010/article/details/7664201
libcurl curl_multi 非阻塞方式 请求网页 http:http://blog.sina.com.cn/s/blog_731d783001011tse.html
- libcurl的C语言接口使用过程
- libcurl简单接口的使用
- libcurl简单接口的使用(FTP)
- libcurl简单接口的使用(FTP)
- libcurl简单接口的使用(FTP)
- c语言libcurl库的异步用法
- c语言libcurl库的异步用法
- c语言libcurl库的异步用法
- mysql的C语言接口的使用
- mysql的C语言接口的使用
- 使用C语言的libcurl库和cJSON库来在线查询CVE漏洞代码实现
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- libcurl在嵌入式设备C 的使用
- linux c libcurl的简单使用
- linux c libcurl的简单使用
- java 类初始化,实例化顺序
- html标签的简单介绍和使用2
- 用socket实现Linux和Windows之间的通信
- 面试题41_和为连续序列
- 紫金桥软件与三菱PLC-FX3G通讯帮助
- libcurl的C语言接口使用过程
- C++快速排序算法
- JNI_最简单的Java调用C/C++代码
- poj3723Conscription kruskal模板水题
- RAD Studio 第3季培训课程
- poj 3259 最短路径spfa判断是否有负环
- jQuery 选择器
- 使用浏览器缓存
- post&get请求编码问题