2016-09-25 103 views
4

libcurlと少し問題がありました。特定のURLの解決を拒否し、「ホスト名を解決できませんでした」というエラーメッセージを返します。他のホストを解決する問題はありません。その理由は、失敗したURLが302リダイレクトを返すという理由があると思われますが、それに続く適切なオプションを設定しました。問題のcurl_easy_perform:ホスト名を解決できませんでした

URL:http://servermods.cursecdn.com/files/922/48/worldedit-bukkit-6.1.3.jar

関連するコード:

CURL* curl; 
FILE* data; 
std::string url; 

// ... 

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); 
curl_easy_setopt(curl, CURLOPT_FILE, data); 
curl_easy_setopt(curl, CURLOPT_URL, url); 

curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true); 
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false); 

CURLcode res = curl_easy_perform(curl); 
+2

コンパイルできる完全なプログラムが役立ちます。 –

答えて

8

libcurlCURLOPT_URLためchar*期待しています。私のコードはstringです。これにより、基本的にライブラリが文字列を誤って解釈し、ホストの解決に失敗します。

+0

コンパイラは確かにそれについていくつかの巨大な警告を投げた? –

+0

いいえ、 'curl_easy_setopt'は不特定の型の可変長を予期しているので、コンパイラはそれを盲目的に受け入れるよりもよく分かりません。 – caseif

関連する問題