91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

libcurl的編譯安裝和使用方法

發布時間:2021-07-08 17:38:16 來源:億速云 閱讀:643 作者:chen 欄目:編程語言

這篇文章主要介紹“libcurl的編譯安裝和使用方法”,在日常操作中,相信很多人在libcurl的編譯安裝和使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”libcurl的編譯安裝和使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

下載libcurl:

https://github.com/curl/curl

libcurl官方指導:

https://curl.se/

編譯libcurl:

編譯步驟:
wanglc@wanglc-VirtualBox:~/Downloads$ unzip curl-master.zip
wanglc@wanglc-VirtualBox:~/Downloads$ cd curl-master/
wanglc@wanglc-VirtualBox:~/Downloads$ ./buildconf
wanglc@wanglc-VirtualBox:~/Downloads$ ./configure
wanglc@wanglc-VirtualBox:~/Downloads$ ./make
wanglc@wanglc-VirtualBox:~/Downloads$ sudo make install (默認安裝到/usr/local目錄下)

編譯之后的頭文件:
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$ pwd
/home/wanglc/Downloads/curl-master/include/curl
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$ ls
curl.h  curlver.h  easy.h  Makefile  Makefile.am  Makefile.in  mprintf.h  multi.h  options.h  stdcheaders.h  system.h  typecheck-gcc.h  urlapi.h
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$ 

編譯之后的庫文件:
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/lib/.libs$ ls -l libcurl.so*
lrwxrwxrwx 1 wanglc wanglc     16 4月  15 22:19 libcurl.so -> libcurl.so.4.7.0
lrwxrwxrwx 1 wanglc wanglc     16 4月  15 22:19 libcurl.so.4 -> libcurl.so.4.7.0
-rwxrwxr-x 1 wanglc wanglc 499648 4月  15 22:19 libcurl.so.4.7.0
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/lib/.libs$ 

安裝后的頭文件:
wanglc@wanglc-VirtualBox:/usr/local/include/curl$ ls
curl.h  curlver.h  easy.h  mprintf.h  multi.h  options.h  stdcheaders.h  system.h  typecheck-gcc.h  urlapi.h
wanglc@wanglc-VirtualBox:/usr/local/include/curl$ pwd
/usr/local/include/curl
wanglc@wanglc-VirtualBox:/usr/local/include/curl$ cd ..

安裝的庫文件:
wanglc@wanglc-VirtualBox:/usr/local/lib$ ls
cmake      libcurl.la  libcurl.so.4      libjsoncpp.a   libjsoncpp.so.1.9.4  libprotobuf.la       libprotobuf-lite.so     libprotobuf-lite.so.26.0.0  libprotobuf.so.26      objects-Release  python3.8
libcurl.a  libcurl.so  libcurl.so.4.7.0  libjsoncpp.so  libjsoncpp.so.24     libprotobuf-lite.la  libprotobuf-lite.so.26  libprotobuf.so              libprotobuf.so.26.0.0  pkgconfig
wanglc@wanglc-VirtualBox:/usr/local/lib$ ls -l libcurl.so*
lrwxrwxrwx 1 root root     16 4月  15 22:25 libcurl.so -> libcurl.so.4.7.0
lrwxrwxrwx 1 root root     16 4月  15 22:25 libcurl.so.4 -> libcurl.so.4.7.0
-rwxr-xr-x 1 root root 499648 4月  15 22:25 libcurl.so.4.7.0
wanglc@wanglc-VirtualBox:/usr/local/lib$ pwd
/usr/local/lib
wanglc@wanglc-VirtualBox:/usr/local/lib$

libcurl http get編程:

#include <curl/curl.h>

// size_t write_callback(char* ptr, size_t size, size_t nmemb, void *userdata)
// FILE* fp;

1. 創建CURL變量
CURL* curl = nullptr;

2. 初始化CURL變量
curl = curl_easy_init();
if (curl == nullptr)
{
    return;
}

3. 設置CURL選項
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com"); // 默認為get請求,get請求的參數是表單參數,直接寫在網址后面即可。

// 設置處理響應數據的回調
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); // fp作為write_callback的userdata參數傳入。

4. 執行CURL請求(默認是同步執行)
CURLcode res;
res = curl_easy_perfom(curl);
if (res != CURLE_OK)
{
    curl_easy_strerror(res); // 返回錯誤描述字符串,可打印
    curl_easy_cleanup(curl);
    return;
}

5. 清理CURL變量
curl_easy_cleanup(curl);

libcurl http post編程:

#include <curl/curl.h>

// size_t write_callback(char* ptr, size_t size, size_t nmemb, void *userdata)
// FILE* fp;

1. 創建CURL變量
CURL* curl = nullptr;

2. 初始化CURL變量
curl = curl_easy_init();
if (curl == nullptr)
{
    return;
}

3. 設置CURL選項
curl_easy_setopt(curl, CURLOPT_URL, "http://www.baidu.com"); // 默認為get請求
curl_easy_setopt(curl, CURLOPT_POST, 1); // 開啟post請求
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, /*POSTFIELDS字符串的長度*/);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl"); // 字符串,post表單數據

// 設置處理響應數據的回調
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); // fp作為write_callback的userdata參數傳入。

4. 執行CURL請求(默認是同步執行)
CURLcode res;
res = curl_easy_perfom(curl);
if (res != CURLE_OK)
{
    curl_easy_strerror(res); // 返回錯誤描述字符串,可打印
    curl_easy_cleanup(curl);
    return;
}

5. 清理CURL變量
curl_easy_cleanup(curl);

libcurl實現下載文件(get):

參考 https://curl.se/libcurl/c/http2-download.html

#

libcurl實現上傳文件(post):

參考 https://curl.se/libcurl/c/http2-upload.html

#

全局初始化和全局清理:

curl_global_init(CURL_GLOBAL_ALL)和curl_global_cleanup()

SSL相關的選項:

CURLOPT_SSL_VERIFYPEER

CURLOPT_SSL_VERIFYHOST

CURLOPT_CAPATH

cookie和session:

CURLOPT_COOKIEJAR 保存cookie信息到本地cookie文件。

CURLOPT_COOKIEFILE 讀取本地cookie文件的信息。

添加http header:

struct curl_slist *headers = NULL;

headers = curl_slist_append(headers, “Accept: Agent-007″);

CURLOPT_HTTPHEADER  將headers中的header參數追加到curl。

CURLOPT_HEADER 非0表示添加header參數。

curl_slist_free_all 釋放headers關聯的內存。

其他選項

CURLOPT_POST

CURLOPT_VERBOSE

CURLOPT_FOLLOWLOCATION

CURLOPT_CUSTOMREQUEST

到此,關于“libcurl的編譯安裝和使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上高县| 绍兴市| 陇西县| 博客| 吉林省| 余干县| 鄱阳县| 丰城市| 南充市| 申扎县| 石门县| 通山县| 乌兰浩特市| 永修县| 隆化县| 湛江市| 梅河口市| 贵阳市| 黑水县| 贵定县| 五华县| 砀山县| 墨江| 利津县| 从江县| 浦东新区| 芒康县| 辽宁省| 宜黄县| 桑植县| 千阳县| 延安市| 高邑县| 四平市| 郎溪县| 宿州市| 鱼台县| 定安县| 桃园市| 兴化市| 金湖县|