您好,登錄后才能下訂單哦!
libcurl該如何分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1. libcurl介紹
libcurl是一個免費,易用的客戶端傳輸庫,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP等協議。libcurl支持SSL認證,HTTP POST, HTTP PUT, FTP 上傳, HTTP form based upload, proxies, cookies,用戶名+密碼認證(Basic, Digest, NTLM, Negotiate, Kerberos),文件斷點續傳,http 代理轉發。
相比于Boost asio網絡庫,具有如下的優點
1)超時時間設置簡單
2)HTTP的摘要認證已經實現
3)HTTPS支持的很好
4)HTTP交互實現的非常好
2. 編譯靜態庫
下載了curl-7.61.0源碼壓縮包,解壓之后,進入projects\Windows有VS各個版本的解決方案,目前使用的是VS2015,進入VC14文件夾,里面有lib文件夾,該文件夾里面包含了一個libcurl的解決方案和一個libcurl現有項目(該項目將會加入到實際的解決方案中)。src文件夾包含了一系列工具生成方案。 默認情況下,會編譯所有支持的協議進靜態庫。通過宏定義HTTP_ONLY,僅將HTTP,HTTPS編譯到靜態庫中
3.HTTPS支持
curl-7.32.0(2013-08-12 00:17)版本不支持HTTPS,因此需要升級到curl-7.61.0(2018-07-11 08:01)版本。
目前在進行HTTPS開發的時候,遇到curl_easy_perform函數執行之后,返回CURLE_UNSUPPORTED_PROTOCOL錯誤,
使用的SSL代碼協議是curl_easy_setopt(hnd, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
小知識
curl 命令行依賴 openssl 庫才能使用 ssl 和 TLS。當前一般認為 TLSv1.1 及 TLSv1.2 才是安全的,很多 https 服務器僅支持這2個協議,不再支持 TLSv1.0 及 ssl。但是 openssl 是從 1.0.1 才支持 TLSv1.1 及 TLSv1.2。
當在代碼中只是出現如下的SSL定義的宏
enum {
CURL_SSLVERSION_DEFAULT,
CURL_SSLVERSION_TLSv1,
CURL_SSLVERSION_SSLv2,
CURL_SSLVERSION_SSLv3,
CURL_SSLVERSION_LAST /* never use, keep last */
};
說明該版本不支持HTTPS協議,需要升級curl版本
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。