經驗
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。