读书人

libcurl的https,该如何解决

发布时间: 2012-06-08 12:55:24 作者: rapoo

libcurl的https
CURL *curl;

CURLcode res;

curl_global_init(CURL_GLOBAL_ALL);

curl = curl_easy_init();

string m_curPage,m_header;

if(curl){

curl_easy_setopt(curl, CURLOPT_URL, "https://login.vancl.com/Login/Login.aspx");

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 1L);

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);//调试信息打开

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteFunc);

curl_easy_setopt(curl, CURLOPT_WRITEDATA, &m_curPage);

curl_easy_setopt(curl,CURLOPT_HEADERDATA, &m_header);

try

{res = curl_easy_perform(curl);}

catch(...)

{

cout<<GetLastError();

}

cout<<GetLastError();







if(0 != res){

fprintf(stderr,"curl error: %d \n", res);

}

curl_easy_cleanup(curl);

}



红色的url,不同返回的结果不同

Peer certificate cannot be authenticated with given CA certificates



返回超时CURLE_SSL_CONNECT_ERROR



我对https这种不熟悉。

问题1:是不是。每一个访问一个https的网站,都要对方的证书?

问题2:能伪造证书?我只要能获取对方的html代码即可

问题3: 能给个如何使用证书,并提交此证书,发送到https服务器端,并得到HTML代码。

谢谢高手帮助 ,我没有分了。对不起。



[解决办法]
是的。
[解决办法]
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
[解决办法]
可能是你的curl版本有点问题,可以到 http://curl.haxx.se/ 下载最新7.26

读书人网 >C++

热点推荐