(ning)异步HTTP客户端是否编码查询参数?

时间:2013-02-12 08:35:07

标签: java asynchttpclient

我正在使用ning Async HTTP客户端,它以下列URL格式向下游服务器发送请求:

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客户端不对查询参数进行编码吗?

1 个答案:

答案 0 :(得分:1)

尝试

setUseRawUrl(true)

配置客户端时,如下所示:

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

这应该保持URL不受影响。