2015年2月22日日曜日

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

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

  1. #include <string>
  2. #include <iostream>
  3. #include <curl/curl.h>
  4.  
  5. using namespace std;
  6.  
  7. size_t callbackWrite(char *ptr, size_t size, size_t nmemb, string *stream)
  8. {
  9. int dataLength = size * nmemb;
  10. stream->append(ptr, dataLength);
  11. return dataLength;
  12. }
  13.  
  14. int main()
  15. {
  16. CURL *curl;
  17. CURLcode ret;
  18.  
  19. curl = curl_easy_init();
  20. string chunk;
  21.  
  22. if (curl == NULL) {
  23. cerr << "curl_easy_init() failed" << endl;
  24. return 1;
  25. }
  26.  
  27. curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:5984/environment/");
  28. curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callbackWrite);
  29. curl_easy_setopt(curl, CURLOPT_WRITEDATA, &chunk);
  30. ret = curl_easy_perform(curl);
  31. curl_easy_cleanup(curl);
  32.  
  33. if (ret != CURLE_OK) {
  34. cerr << "curl_easy_perform() failed." << endl;
  35. return 1;
  36. }
  37.  
  38. cout << chunk << endl;
  39.  
  40. return 0;
  41. }

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

0 件のコメント:

コメントを投稿