2010-12-15 2 views
3

Есть ли способ добавить необработанные байты к параметрам post с помощью HTTPClient Apache? Моей мотивацией является поток необработанных байтов потока в конкретном кодировании, а затем проверка того, что происходит с этими данными, когда оно попадает на сервер.Добавление необработанных байтов для отправки параметров с использованием Apache HttpClient

Редактировать: Я заметил, что Apache имеет устаревший метод для добавления в тело запроса с использованием входного потока, поэтому я могу подавать этот ByteArrayInputStream, но есть ли что-нибудь лучшее/не устаревшее?

ответ

1

(Вы не указали, поэтому я предполагаю, что вы используете Apache HttpClient версию 4.й)

Я не думаю, что вы можете «добавить» сырые байты параметров ВЫВЕШАТ обычно СОЗДАТЬ запрос.

Однако должно быть возможно создать PostMethod с HttpEntity, который состоит из законных параметров, а также некорректно закодированных материалов. Возможно, вам нужно будет самостоятельно форматировать и кодировать содержимое, но вы можете сделать короткий отрез, поместив действительные параметры в UrlEncodedFormEntity, а затем используя метод writeTo для извлечения форматированной/кодированной версии в ByteArrayOutputStream. После того, как вы взломали байты содержимого, превратите их в экземпляр ByteArrayEntity с соответствующими типами содержимого и параметрами кодирования.

Это будет грязный ...

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