6

libcurlpp (libcurl の C++ ラッパー) を使用してフォームを投稿し、応答を取得しようとしています。それはすべて機能しますが、http トランザクションが終了した後に curlpp::Easy オブジェクトからの応答にプログラムでアクセスする方法がわかりません。基本的に:

#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
...
curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://example.com/" ) );
foo.setOpt( new curlpp::options::Verbose( true ) );
...many other options set...
foo.perform();  // this executes the HTTP transaction

このコードを実行すると、Verboseが に設定されているためtrue、応答が STDOUT に出力されることがわかります。しかし、STDOUT にダンプするのではなく、完全な応答にアクセスするにはどうすればよいでしょうか? curlpp::Easy には、応答にアクセスする方法がないようです。

Google で同じ質問をする人が多数ヒットしますが、返信はありません。curlpp メーリング リストはデッド ゾーンであり、curlpp Web サイトの API セクションは 1 年間機能していません。

4

4 に答える 4

14

これが私が最終的にやった方法です:

// HTTP response body (not headers) will be sent directly to this stringstream
std::stringstream response;

curlpp::Easy foo;
foo.setOpt( new curlpp::options::Url( "http://www.example.com/" ) );
foo.setOpt( new curlpp::options::UserPwd( "blah:passwd" ) );
foo.setOpt( new curlpp::options::WriteStream( &response ) );

// send our request to the web server
foo.perform();

foo.perform()返されると、完全な応答本文が で提供されるストリームで利用できるようになりますWriteStream()

于 2011-02-18T07:26:07.667 に答える