easy curl使用的问题:CURLE_PEER_FAILED_VERIFICATION (60) 、CURLE_URL_MALFORMAT (3) 、照片无法打开

使用easy curl下载图片(jpg\jpeg)或者普通文件的时候,遇到一些坑,简单记录下。
先确认下url正确性:url配合浏览器验证当前url格式本身是否正确。


问题描述&解决方案

  • 错误码:CURLE_PEER_FAILED_VERIFICATION (60)。
    我是因为目标url带https,查询了下说是因为验证证书的时候出现了问题,我通过以下方法暴力解决了。好像还有一种更为合适的,更新证书的方式,因为我这个curl使用的很简单,所以就不尝试了。
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
  • 错误码:CURLE_URL_MALFORMAT (3)
    这就比较坑了,正常来说不一定会遇到。记得set url的时候一定要使用char*类型作为参数,虽然编译不报错,但是在url正确的情况下返回类型会变为3。
std::string url= "https//xxxxxx";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); //一定使用char *
  • 照片无法打开
    有时候本地下载照片看似都成功了,但是文件却打不开。再次看curl_easy_perform返回值是不是正确的,有时候代码逻辑即使返回不正确,仍然可能已经使用了CURLOPT_WRITEFUNCTION\CURLOPT_WRITEDATA将response写入到照片文件中。

你可能感兴趣的:(网络,c++,https)