簡體   English   中英

如果提供URL作為參數,C ++ curl無法解析主機

[英]C++ curl could not resolve host if URL is provided as argument

我正在構建一個小型應用程序,該應用程序需要獲取對API的請求。

如果我直接在函數內提供完整的URL,則使用libcurl效果很好,但是如果我在以URL作為參數的函數內部使用libcurl,它將立即失敗,並顯示錯誤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”,則它可以工作。 所以我真的不知道該怎么辦。

非常感謝。 :)

在這里找到解決方案: URL變量傳遞給Curl

基本上,您需要將URL提供為以空值結尾的字符串。 因此,如果參數是字符串,請使用.c_str()或從該字符串獲取char*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM