求助:C++中采用curl通过Proxy代理访问外部网址,返回错误CURLE_COULDNT_CONNECT(7)

txewwq 2016-09-22 02:41:24
两个问题:
1、本地程序A通过代理B模式访问外部网址C,一直返回错误CURLE_COULDNT_CONNECT,请各位大神帮忙看下主代码是否正常。(直接ping服务器是可以ping通的,直接通过IE浏览器也可以访问外部网址)
2、本地程序A如果不经过代理直接和外部网址C交互,是有CA认证机制的。如果采用代理的模式后,是否会影响本地程序A和外部网址C的认证。

主代码如下:
m_curl = curl_easy_init();
if(NULL == m_curl)
{
RECORD_LOG("SRCurlTrans::CheckHttpRequestPara() Call curl_easy_init fail.");
return -1;
}

//设置easy属性
curl_easy_setopt(m_curl, CURLOPT_URL, url);
curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1);
if(timeoutValue != 0)
{
curl_easy_setopt(m_curl, CURLOPT_TIMEOUT, timeoutValue);
}

// 设置代理
curl_easy_setopt(m_curl, CURLOPT_PROXY, "proxy.xxxx.com:8080");
curl_easy_setopt(m_curl, CURLOPT_PROXYUSERPWD,"user:pwd");
curl_easy_setopt(m_curl, CURLOPT_FORBID_REUSE, 1);
curl_easy_setopt(m_curl, CURLOPT_FOLLOWLOCATION, 1);

curl_easy_setopt(m_curl, CURLOPT_HEADER, 1);
curl_easy_setopt(m_curl, CURLOPT_TIMECONDITION, 30);
curl_easy_setopt(m_curl, CURLOPT_TIMEOUT, 30);


//以下两条是HTTPS的设置选项
curl_easy_setopt(m_curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(m_curl, CURLOPT_SSL_VERIFYHOST, 0L);

// 尝试证书
//curl_easy_setopt(m_curl,CURLOPT_SSL_VERIFYPEER,1);
//curl_easy_setopt(m_curl,CURLOPT_CAPATH,"/");
//curl_easy_setopt(m_curl,CURLOPT_CAINFO, "ca.pem" );

...全文
1067 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
相偎 2017-03-07
  • 打赏
  • 举报
回复
请问,楼主的问题解决了吗?
蓝黑护法 2017-03-04
  • 打赏
  • 举报
回复
楼主的问题解决了吗?

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧