3

cpp-netlib(安定版リリース 0.10.1)を使用して HTTP サーバーの開発を開始しましたが、利用可能なドキュメントから、サーバー ハンドラーで HTTP 要求ヘッダーにアクセスする方法がわかりません。次のようなラッパーを使用して実行できることを認識しています。

void operator()(async_server::request const &Request, async_server::connection_ptr pConnection)
{
    http::impl::request_headers_wrapper<http::tags::http_async_server> Headers = headers(Request);
}

しかし、これの定義によるとnot_quite_pod_request_baseheaders.hppこれは実際にはペアのベクトルであり、特定のヘッダーが存在するかどうかなどを検索したい場合、検索が困難です。他のオプションがない場合は、もちろんこれに固執しますが、最初は、少なくとも以下から判断すると、マルチマップとして意図されていたようですheaders_container.hpp

namespace boost { namespace network {

    template <class Tag>
    struct headers_container {
        typedef std::multimap<
            typename string<Tag>::type,
            typename string<Tag>::type
            > type;
    };

} // namespace network
} // namespace boost

だから、誰でもそのような再定義がある理由を指摘できますか、実際に取得する方法がありませんか、またはヘッダーを操作するための「頼りになる」方法をmultimap備えたラッパーですか? 少なくとも私には、 a の方がはるかに扱いやすいように思えます。vectorcpp-netlibmultimap

アップデート

また、POCO ライブラリをざっと見てみましたが、それらの認証クラスがクライアント セッションのみを対象としているのか、サーバーのみを対象としているのかも理解できませんでした。誰かがこれについてヒントを与えることができれば、POCO に切り替えることができれば、生活がずっと楽になるかもしれません。

4

1 に答える 1