2015年2月22日日曜日

c++でcurlを使う:couchDBへのアクセス

c++でcouchDBにアクセスしようと思ったら、curlライブラリを組み込んでやりましょう。今回はとりあえず自分のメモ用にサンプル載せておきます。

#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://localhost:5984/environment/");
  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;
}

couchDBにenvironmentというデータベースを事前に作っておきます。これでうまくレスポンスが返ってきました。JSON形式で返ってきますので、後は前回のpicojsonでハンドリングするだけです。

0 件のコメント:

コメントを投稿