1.准备工作,安装ssl库:
sudo apt-get install openssl
sudo apt-get install libssl-dev
2.下载libcurl源代码:
wget https://curl.haxx.se/download/curl-7.65.3.tar.xz
3.解压并进入源代码目录:
tar xf curl-7.65.3.tar.xz
cd curl-7.65.3
4.配置编译选项:
./configure --prefix=/usr \
--disable-static \
--enable-threaded-resolver \
--with-ca-path=/etc/ssl/certs
5.编译:
make
6.安装(需要root权限):
make install &&
rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o -name \*.1 -o -name \*.3 \) -exec rm {} \; &&
install -v -d -m755 /usr/share/doc/curl-7.65.3 &&
cp -v -R docs/* /usr/share/doc/curl-7.65.3
至此,编译安装完成。
写代码测试一下:
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com/");
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
编译:
gcc hello_https.c -l curl -o hello_https
运行:
./hello_https
运行结果截图:
附 自定义回调处理响应数据代码:
#include <stdio.h>
#include <curl/curl.h>
static size_t write_data(void *ptr, size_t size, size_t nmemb, void *stream)
{
if(stream == NULL)
return 0;
printf("%s", ptr);
return size * nmemb;
}
int main(void)
{
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com/");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
/* always cleanup */
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}