2012-05-26 4 views
1

Я пытаюсь передать двоичные данные на сервер через http через поле URL в браузере. Есть ли способ обойти автоматическую кодировку HTTP, выполняемую браузером, поэтому я могу просто кодировать данные самостоятельно.Отправка двоичных данных по http в url

например: Вместо байта со значением 48, для заполнения в URL% 30, так что браузер не перекодировать URL, и я в конечном итоге с% 2530

Решено: Кому может столкнуться аналогичные проблемы в будущем. Вы можете сделать это с помощью Wget параметру

--restrict-имя-файла = ASCii

Который в основном гарантирует, что '%' не будут экранированы

+0

Зачем вам нужно кодирование самостоятельно? – Overv

+0

Потому что на стороне сервера есть двоичный файл, который ожидает такого рода данных, и мне было интересно, есть ли способ сделать это, не называя http-клиента с нуля. – skyel

+0

Если вы просто положили '0', это эквивалентно помещению'% 30'. Не должно быть никаких проблем. – Ashe

ответ

-1

Мне удалось это сделать, написав собственный клиент tcp для подключения к HTTP-серверу и передачи запроса, введя его вручную.

1

Использование base64 кодирования , это то, что он предназначен для этого.

+0

Он не может изменить серверную сторону, поэтому нет опции. Скайсел, вы должны положить что в вопросе – Overv

+0

Это может вызвать проблемы, потому что закодированная в base64 строка может содержать «/». Я думаю, что кодировка base32 более подходит. – zwcloud

0

Использовать кодировку base62.

Закодированная строка не содержит символов, которые будут кодироваться по URL-адресу.

Смежные вопросы