libcurlでjsonを取得したい(C++)
Posted: 2014年5月05日(月) 09:48
libcurlを使って(http://2048.semantics3.com/hi/start/json)のjsonを取得したいのですが、方法がわかりません。
いろいろと検索をかけてみてかいてみたのが以下のコードです.
環境はMacで,g++のバージョンはApple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)です.
g++ -libcurl main.cppでコンパイルは通りますが、実行すると空白の一行が出力されるだけになってしまいます。
どうかよろしくお願いします。
aaaaa
いろいろと検索をかけてみてかいてみたのが以下のコードです.
環境はMacで,g++のバージョンはApple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)です.
g++ -libcurl main.cppでコンパイルは通りますが、実行すると空白の一行が出力されるだけになってしまいます。
どうかよろしくお願いします。
#include <string>
#include <iostream>
#include <curl/curl.h>
using namespace std;
size_t callbackWrite(char *ptr, size_t size, size_t nmemb, string *stream)
{
int dataLength = size * nmemb;
stream->append(ptr, dataLength);
return dataLength;
}
int main()
{
CURL *curl;
CURLcode ret;
curl = curl_easy_init();
string chunk;
if (curl == NULL) {
cerr << "curl_easy_init() failed" << endl;
return 1;
}
curl_easy_setopt(curl, CURLOPT_URL, "http://2048.semantics3.com/hi/start/json");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callbackWrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &chunk);
ret = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (ret != CURLE_OK) {
cerr << "curl_easy_perform() failed." << endl;
return 1;
}
cout << chunk << endl;
return 0;
}