私はC++ REST SDK 2.8のHTTPリスナーを使用しており、次のことに気付きました。私はこのリスナーに次のURLを送信する場合:C++ REST SDK( "Casablanca")のURIエンコーディング
http://my_server/my%2fpath?key=xxx%26yyy%3Dzzz
をし、私が行います
auto uri = request.relative_uri();
auto v_path_components = web::uri::split_path(web::uri::decode(uri.path()));
auto m_query_components = web::uri::split_query(web::uri::decode(uri.query()));
その後、私はv_path_componentsは、2つの要素[ "私"、 "パス"]、およびが含まれていることを見つけますm_query_componentsには2組の[( "key"、 "xxx")、( "yyy"、 "zzz")]が含まれています。私が欲しいと期待しているだろうか
はv_path_componentsは、[ "私の/パス"] 1つの元素を含有させると、m_query_componentsが含まれている1組[( "キー"、 "XXX & YYY = ZZZ")] 。
relative_uriは、情報を失うので、uriをデコード/エンコードするべきではありません。さらに、web :: uri :: decode()は、分割前ではなく分割結果で実行する必要があります。しかし、REST SDK自体と同様に多くのサンプルがこの方法で使用されているので、間違いかもしれないと私は信じています。
私の所見を確認したり、私が間違っている理由を説明できる人はいませんか?