Теоретически этого можно избежать, создав вручную строку запроса или тело запроса, содержащее параметры.
Но это будет плохой поступок , поскольку HTML, HTTP,Спецификации URL и URI мандат , что зарезервированные символы в параметрах запроса кодируются.И если вы нарушите это, вы можете обнаружить, что серверные HTTP-стеки, прокси-серверы и т. Д. Отклоняют ваши запросы как недействительные или ведут себя неправильно другими способами.
Правильный способ решения этой проблемы - это выполнить один из них.из следующих:
Если сервер реализован в технологии Java EE, используйте соответствующие методы API сервлета (например, ServletRequest.getParam(...)
) для получения параметров запроса.Они позаботятся о любом декодировании для вас.
Если параметры являются частью строки запроса URL, вы можете создать экземпляр объекта Java URL или URI и использовать метод получения, чтобы вернуть вамзапрос с удаленной кодировкой.
Если ваш сервер реализован каким-либо другим способом (или если вам нужно , чтобы самостоятельно убрать строку запроса URL-адреса запроса или данные POST самостоятельно),затем используйте URLDecoder.decode или его эквивалент, чтобы удалить кодировку% и заменить + ... после того, как вы выяснили, где находятся границы запроса и параметров и т. д.