我尝试使用libcurl将https请求(ssl)发送到API服务器(Last.fm)。当我尝试发送http请求时,它可以,但是当我发送https请求时,它不是。在谷歌和堆栈溢出的许多搜索后,我从互联网获取此示例代码并尝试执行它但它不起作用并显示此错误:
curl_easy_perform()失败:无法使用给定的CA证书对对等证书进行身份验证
有示例代码:
#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
int main() {
CURLcode res;
CURL *handle = curl_easy_init();
char url[] = "https://google.com";
curl_easy_setopt(handle, CURLOPT_URL, url);
res=curl_easy_perform(handle);
if(res==CURLE_OK)
{
printf("OK");
}
else{
printf("curl_easy_perform() failed: %s \n", curl_easy_strerror(res));
}
return 0;
}
P.S:我在终端上用gcc编译。
答案 0 :(得分:0)
我通过删除libcurl4-gnutls-dev并安装libcurl4-openssl-dev来解决问题。如果您遇到同样的问题,只需要这个命令:
sudo apt-get install libcurl4-openssl-dev
这会自动删除libcurl4-gnutls-dev。