Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ “;无法解析主机”;使用c++;_C++_Curl_Libcurl - Fatal编程技术网

C++ “;无法解析主机”;使用c++;

C++ “;无法解析主机”;使用c++;,c++,curl,libcurl,C++,Curl,Libcurl,代码片段如下所示: const int BUFFERSIZE = 50*1024; char lLoadedData[BUFFERSIZE]; memset(lLoadedData, 0, sizeof(lLoadedData)); mstrURL = "http://www.google.com"; CURL* lCurlHandle = curl_easy_init(); if (lCurlHandle) { //url if ((error_code = curl_eas

代码片段如下所示:

const int BUFFERSIZE = 50*1024;
char lLoadedData[BUFFERSIZE];
memset(lLoadedData, 0, sizeof(lLoadedData));

mstrURL = "http://www.google.com";
CURL* lCurlHandle = curl_easy_init();
if (lCurlHandle)
{
    //url
    if ((error_code = curl_easy_setopt(lCurlHandle, CURLOPT_URL, mstrURL)) != CURLE_OK)
        return;

    if((error_code = curl_easy_setopt(lCurlHandle, CURLOPT_WRITEDATA, (void *)lLoadedData)) != CURLE_OK)
        return;

    error_code = curl_easy_perform(lCurlHandle);

    if (error_code == CURLE_OK)
    {           
              ...
        }
}
执行curl\u easy\u perform()后的错误代码是CURLE\u couldn\u RESOLVE\u HOST

我已将DNS服务器更改为8.8.8.8和4.4.4.4,但错误代码仍然没有更改

有人知道如何解决这个问题吗?谢谢

环境:Windows server 2008与2010

===================更新===================== 似乎参数是错误的。应该是:
如果((error\u code=curl\u easy\u setopt(lCurlHandle,CURLOPT\u URL,mstrURL.c\u str())!=CURLE\u OK)

很可能您正在使用一个忘记告诉libcurl的代理


您可以打开CURLOPT\u VERBOSE从libcurl获取更多关于它的功能和发生的情况的信息。

我也有类似的错误。当我通过启用verbose选项来检查日志消息时,curl会在我以字符串形式传递url时尝试重新生成url。重建url过程生成了无效的url。 只有当我将url直接放在curl_easy_setopt方法上时,它才起作用,例如:curl_easy_setopt(lCurlHandle,CURLOPT_url,“”)。如果我将url放在变量中并将其传递给参数,则curl将不起作用。 但后来,我查阅了CURLOPT_URL的手册。url参数应该是char指针。因此,我将字符串url转换为字符指针


因此,我的建议是将(可能)字符串mstrURL转换为char指针,让我们看看它是否有效。如果您使用std::string,您可以使用c_str()将其转换为char指针。

我对不得不在消费者操作系统上开发表示哀悼。我无法回答您的问题,但我可以告诉您,4.4.4.4不太可能是名称服务器。您可能是指8.8.4.4。谢谢您的评论。但是它在8.8.4.4上也失败了是的,因此我的“我不能回答你的问题”。您可能希望使用一个平台,该平台允许您以结构化方式分析问题。在unix上,我会对它进行跟踪,找出到底是什么地方出了问题,然后使用调试器逐步查找错误的一般位置。在Windows上,我会询问Clippy,然后致电客户支持。