libcurl の C++ ラッパライブラリ curlpp を使って HTTP 経由でコンテンツをやり取りしようという試みです。

ネット上の何処かにあるフィードのデータを整形して Twitter へ投げるような場合にはフィードのデータを GET する場合と、Twitter へ データを POST する。2つのパターンがありますが、まずは GET 編。

いきなり答えですが、単純に URL へ GET リクエストを送るという最小限のコードはこれだけ。

cleaner はコンストラタとデストラクタで cURLpp の初期化、終了化をやってくれるもの。 あとの 3 行はほぼ見たままなのだけど、setOpt の仕方が少々変わっていて

のようにでファインマクロは使わなくなっています。 libcurl でいうところの CURL_OPT_XXXX のデファインに対応するクラスが cURLpp::Options に準備されているようです。そして、そのクラスのインスタンスを setOpt に渡すことで curl ハンドラの設定行います。

でも、これだと単に標準出力にコンテンツを出力しておしまいなので、画面に出さずにメモリに入れるようにしてみたいのですが、それにはURL を設定した行の下に下の 2 行を追加すれば大丈夫です。

ちょっと分かりにくいけど、データを受け取ったら CurlHandler::writeMemoryCallback にデータを渡すようにする設定です。 libcurl でいうところの CURLOPT_WRITEFUNCTION の設定です。libcurl のドキュメント には size_t function( void *ptr, size_t size, size_t nmemb, void *stream) とか書いてるわりに、curlpp では 4 つ引数のある関数は受け取ってもらえませんでしたので、3 つで我慢しました。この関数は一回のリクエストで何回呼ばれるかは保証されていませんので、呼ばれるごとに受信したデータを後ろに繋いでいく必要があります。こんな感じで:

以上で、ざーっと curlpp で GET してレスポンスのデータをメモリに代入するところまでやってきました。最後に全体を貼り付けておきます。

トラックバック(0)

このブログ記事を参照しているブログ一覧: curlpp を使ってみる - GET 編

このブログ記事に対するトラックバックURL: http://tsuyuguchi.com/mt/mt-tb.cgi/340

コメントする

最近の画像

料理が少し楽しくなるかもしれないグッズ
江戸糸あやつり人形
江戸糸あやつり人形
おうち、
新橋青空大判将棋
「天体の回転について」読了
「幼年期の終り」読了
「数学ガール/フェルマーの最終定理」読了
ハリー・ポッター 最終巻
もう炊飯器いらないかも

私の本棚

 

自転車走行距離

Flickr Photos

なかのひと

Y!ログール

このサイトについて

あわせて読みたいブログパーツ

2008年11月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

アーカイブ

My Update

  • Loading...

その他