Кодирует ли (ning) асинхронный HTTP-клиент параметры запроса?

Я использую 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-клиент не кодировать параметры запроса?


person Karthik V    schedule 12.02.2013    source источник
comment
Чтобы было ясно, я говорю о клиенте com.ning.http.client.AsyncHttpClient версии 1.7.6.   -  person Karthik V    schedule 12.02.2013


Ответы (1)


Пытаться

setUseRawUrl(true)

при настройке клиента, например:

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

Это должно оставить URL нетронутым.

person Gerd Riesselmann    schedule 01.11.2013