7

HTTPPUTリクエストを使用してC++アプリケーションからサーバーにデータを送信したいと思います。アプリケーションのネットワークにpocoライブラリを使用しています。

私はこのコードスニペットを使用しています:

HTTPClientSession session(_uri.getHost(), _uri.getPort());
HTTPRequest req(HTTPRequest::HTTP_PUT, path, HTTPMessage::HTTP_1_1);

リクエストを送信するときに、コンテンツ(ファイル)ストリームをどこに設定しますか?このライブラリを使用した例を誰かに教えてもらえますか?

4

1 に答える 1

8

のオンライン ドキュメントの引用HTTPClientSession:

sendRequest() は、リクエスト本文の送信に使用できる出力ストリームを返します。リクエストボディの送信が完了したら、HTTPResponse オブジェクトを作成して receiveResponse() に渡します。

次のスニペットは、出力ストリームを使用してファイルを読み取る 1 つの方法を示しています。

try {
    Poco::Net::HTTPClientSession session("www.example.com");
    Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_PUT, "/foo");

    std::ostream& os = session.sendRequest(request);

    std::ifstream ifs("thefile.txt"); // missing: error handling
    Poco::StreamCopier::copyStream(ifs, os); // that's it :-)

    Poco::Net::HTTPResponse response;
    std::istream& rs = session.receiveResponse(response);
    // Do something with rs...

} catch (Poco::Exception& e) {
    std::cout << e.displayText() << std::endl;
}

また、POCO ネットワーク プログラミングのスライドもご覧ください。特に、 の使用方法を示しますHTTPClientSession

POCO のドキュメントは簡潔で要点がはっきりしています。読む価値があります。

于 2012-05-22T16:48:09.250 に答える