报错:libcurl 库使用错误


1、

报错如下:

curl_easy_perform() failed: SSL peer certificate or SSH remote key was not OK
解决方法:

在程序中去掉证书校验:

		//取消证书校验:
		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);

		/* Perform the request, res will get the return code */
		res = curl_easy_perform(curl);

参考链接:
https://blog.csdn.net/meloyi/article/details/50441748


2、

报错:

curl_easy_perform() failed: Couldn't resolve host name
Segmentation fault

根据上面报错可以看出来,不光产生了报错,还产生段错误,导致程序异常停止。

经过仔细对比返回信息,检查出,执行 curl_easy_setopt(curl, CURLOPT_URL, url);时,url值为null,不是一个有效的链接地址。

解决方法:

在程序一开始加个判断,避免出现该错误。当做暂时的解决办法。

    int err;
	err = strncmp(url, "http", 4); //判断是不是一个连接
	if(0 != err)
	{
		printf("url :%s \n", url);
		return -1;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libcurl是一个功能强大的,可用于执行各种网络操作的C语言。它支持多种协议,例如HTTP、FTP、SMTP等,并提供了各种选项和参数,以便您可以自定义网络请求以及如何处理响应。下面是一些使用libcurl的基本步骤: 1. 包含libcurl头文件 在您的C文件中,您需要包含libcurl的头文件: ```c #include <curl/curl.h> ``` 2. 初始化CURL使用libcurl之前,您需要初始化一个CURL句柄,可以使用`curl_easy_init()`函数来实现: ```c CURL *curl; curl = curl_easy_init(); if (!curl) { // 初始化失败 } ``` 3. 设置URL和选项 在CURL句柄上设置选项,以指定要执行哪个URL以及如何处理响应。例如,您可以使用`CURLOPT_URL`选项指定要访问的URL: ```c curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); ``` 还有许多其他选项可以设置,例如`CURLOPT_FOLLOWLOCATION`选项可以让libcurl自动跟踪重定向: ```c curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); ``` 4. 执行HTTP请求 一旦您设置了所有选项,就可以使用`curl_easy_perform()`函数执行HTTP请求: ```c CURLcode res; res = curl_easy_perform(curl); if (res != CURLE_OK) { // 请求失败 } ``` 5. 处理响应 处理HTTP响应的方式取决于您正在执行的操作。例如,如果您正在下载文件,您可以将响应写入本地文件: ```c FILE *fp; fp = fopen("myfile.txt", "wb"); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); res = curl_easy_perform(curl); fclose(fp); ``` 如果您正在执行POST请求,则可以使用`CURLOPT_POSTFIELDS`选项设置请求正文,并使用`CURLOPT_WRITEFUNCTION`选项指定一个回调函数来处理响应: ```c curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "param1=value1&param2=value2"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); ``` 6. 清理 最后,清理CURL句柄并释放所有资源: ```c curl_easy_cleanup(curl); ``` 以上是使用libcurl的基本步骤。根据您的需求,您可以使用更多选项和参数自定义您的网络请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值