【发布时间】:2016-09-10 11:10:21
【问题描述】:
我正在构建一个需要获取 API 请求的小型应用程序。
如果我直接在函数中提供完整的 URL,我使用 libcurl 效果很好,但如果我在函数内部使用 URL 作为参数,它会立即失败并出现错误 CURLE_COULDNT_RESOLVE_HOST(6)。
所以我知道这不是 DNS 问题,因为如果我直接提供 URL,我可以解决它。
这是我目前的功能。
std::string winget(std::string url)
{
CURL *curl;
CURLcode res;
std::string readBuffer;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
return readBuffer;
}
//and I call it like this :
winget("example.org");
基本上,如果我直接将函数中的 url 参数替换为“example.org”,它就可以工作。所以我真的不知道该怎么处理它。
提前非常感谢。 :)
【问题讨论】: