を介して書き込みコールバックとして渡す関数を作成する必要があると思いますCURLOPT_WRITEFUNCTION
(これを参照)。または、一時ファイルを作成し、そのファイル記述子をCURLOPT_WRITEDATA
(そのページにリストされている次のオプション)を介して渡すこともできます。次に、一時ファイルから文字列にデータを読み戻します。最も美しいソリューションではありませんが、少なくともバッファや関数ポインタをいじる必要はありません。
編集:あなたはファイルに書きたくないので、このようなものがうまくいくかもしれません:
#include <string>
size_t write_to_string(void *ptr, size_t size, size_t count, void *stream) {
((string*)stream)->append((char*)ptr, 0, size*count);
return size*count;
}
int main(void) {
// ...
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://www.browsarity.com/");
string response;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_to_string);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
// The "response" variable should now contain the contents of the HTTP response
}
return 0;
}
免責事項:私はこれをテストしていません。C++では少し錆びていますが、試してみることができます。