【问题标题】:Does the (ning) Async HTTP Client encode query parameters?(ning) Async HTTP Client 是否对查询参数进行编码?
【发布时间】:2013-01-27 12:26:04
【问题描述】:

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

【问题讨论】:

  • 明确一点,我说的客户端是com.ning.http.client.AsyncHttpClient version-1.7.6

标签: java asynchttpclient


【解决方案1】:

试试

setUseRawUrl(true)

在配置客户端时,像这样:

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

这应该使 URL 保持不变。

【讨论】:

    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2021-07-23
    • 2013-06-21
    相关资源
    最近更新 更多