1

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

4

1 回答 1

1

尝试

setUseRawUrl(true)

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

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

这应该保持 URL 不变。

于 2013-11-01T13:44:46.823 回答