Как закодировать URL, который я хочу передать как строку запроса - PullRequest
1 голос
/ 10 марта 2012

Я пытаюсь отправить URL как параметр строки запроса, как в этом примере:

http://localhost.com/myapp.jsp?pathToFileURL=http://192.168.0.1/my_file.pdf

Я использовал кодирование URL для кодирования пути перед отправкой на сервер, поэтому проблема заключается в том, что из-за этого я получаю «400 Invalid URI: noSlash».

Из того, что я прочитал, проблема в безопасности tomcat и в том, что я должен добавить параметр при запуске tomcat

-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true

Но я не могу изменить параметры кота, так возможно ли это сделать другим способом?

Спасибо

Ответы [ 3 ]

1 голос
/ 10 марта 2012

Вы можете выполнить кодирование URLSafebase64 на стороне клиента и декодирование URLSafebase64 на стороне сервера. Проверьте URLEncoder класс для более подробной информации: http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html

Вы можете проверить вручную перед кодированием, используя любой из онлайн-кодировщиков / декодеров URL. Просто Google для "URL-кодировщик / декодер"

1 голос
/ 10 марта 2012

Полный удар в темноте, но вы можете попытаться избежать косой черты с помощью обратной косой черты, или вы можете попробовать заменить их на %2F, который является версией косой черты в кодировке URL.

Надеюсь, это поможет.

0 голосов
/ 10 марта 2012

Base64 URL, затем на принимающей стороне декодируют base64, чтобы получить исходный URL без каких-либо изменений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...