经验
1)配合Postman能够快速的生成例子代码
2)curl_global_init初始化
如果调用curl库函数的时候,没有调用curl_global_init进行curl全局变量的初始化,会在curl_easy_init函数中,进行初始化调用
3)请求数据的时候,都应该携带上返回报文的格式,否则无法返回有效的数据
struct curl_slist *pCurlHeadList = NULL;
pCurlHeadList = curl_slist_append(pCurlHeadList, "content-type: application/json");
curl_easy_setopt(pCurlHandle, CURLOPT_HTTPHEADER, pCurlHeadList);
当前在对接ASP网页后端的时候,必须指定传输文本格式
4)libcurl发送达到1秒延时
当POST数据长度大于1024字节,libcurl不会直接发送POST请求,而是会分成两步执行:
发送一个请求,该请求头部包含一个Expect: 100-continue的字段,用来询问server是否愿意接收数据
当接收到从server返回的100-continue的应答后,才会真正的发起POST请求,将数据发送给server.
解决方案
struct curl_slist *pCurlList = NULL;
pCurlList = curl_slist_append(pCurlList, "expect: ");
curl_easy_setopt(pCurlHandle, CURLOPT_HTTPHEADER, pCurlList);
5)返回错误码记录分析
CURLE_COULDNT_CONNECT(7)
connect()的主机或代理失败。
CURLE_GOT_NOTHING(52)
服务器连接成功,但是没有从服务器返回的,和得到什么的情况下,被认为是一个错误
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。