1

次のURL形式でダウンストリームサーバーにリクエストを送信するningAsyncHTTPクライアントを使用しています。

http://{downstream-server}:4080/object/id?query_parameters=a1,a2

,クエリパラメータのに注意してください。私の問題は、HTTPクライアントが次のようにリクエストを実行する前にクエリパラメータをエンコードしているように見えることです。

query_parameters=a1%2Ca2

ダウンストリームサーバーが次の例外をスローするため、これを知っています。

Invalid query parameter value: a1%2Ca2. Can be a1 or a2

何らかの理由で、ダウンストリームサーバーはクエリパラメータをデコードしません。クライアントがリクエストを実行する直前に、のクエリパラメータの値を確認しましたが、request.getQueryParameters()まだquery_parameters : a1,a2です。

クエリパラメータをエンコードしないようにHTTPクライアントを取得できますか?

4

1 に答える 1

1

試す

setUseRawUrl(true)

クライアントを構成するときは、次のようにします。

new AsyncHttpClient(new AsyncHttpClientConfig.Builder()
    .setUseRawUrl(true)
    .build()
)

これにより、URL は変更されません。

于 2013-11-01T13:44:46.823 に答える