#java #url #spring-webclient
Вопрос:
Строка запроса WebClient urlbuilder изменилась
String key = "bEyBOCB4SoL/1gI%s"
webClient.get()
.scheme("http")
.host("www.localhost:8080")
.queryParam("key", URLEncoder.encode(key, StandardCharsets.UTF_8.toString()))
.build()
... send request
строка запроса изменилась «bEyBOCB4SoL%252F1gI%25»
происхождение = «bEyBOCB4SoL/1gI%s»
Ответ №1:
Вы трижды кодируете значение.
key
Строка уже закодирована, смотрите/
, какое значение является закодированным/
.- Затем вы вручную кодируете , вызывая
URLEncoder.encode(...)
, который будет кодироваться%
как%
. - Затем
queryParam(...)
метод будет снова кодироваться, который будет кодироваться%
как%
.
Результат таков %252F
, как вы видите.
Измените код:
String key = "bEyBOCB4SoL/1gI%s";
.queryParam("key", key)
В результате будет: bEyBOCB4SoL/1gI%s
Комментарии:
1. я имею в виду, когда включаю » % » в строку. url добавил «25» за»%», как я могу это решить?
2. я заменил » % » на «%», но ничего не изменилось
3. @JavaOne, конечно, кодировка меняется
%
на%
. Как вы думаете, что делает кодировка URL, если не это?4. API требуется»%», но я отправляю «%», как я могу это сделать??