REST Assured - Как инициировать Transfer-Encoding: chunked - в настоящее время я получаю сообщение об ошибке apache Заголовок Transfer-encoding, который уже присутствует

Я новичок в Java и уверен, что REST / REST. Я пытаюсь создать запрос POST с набором «Transfer-Encoding: chunked» (через заголовок), но получаю исключение «org.apache.http.ProtocolException: заголовок Transfer-encoding уже присутствует».

Код, который я использую, похож на следующий ..... @Test ...... given () .headers (использует метод, который устанавливает требуемые заголовки, включая "Transfer-encoding") .body (" testdata ".getBytes ()) .contentType (MediaType.APPLICATION_OCTET_STREAM) .log (). all () .expect () .statusCode (HttpStatus.SC_OK) .post ();

но я получаю исключение «org.apache.http.ProtocolException: заголовок кодирования передачи уже присутствует».

У кого-нибудь есть идея, почему я получаю исключение / как я могу его решить? Заранее спасибо.


person DebbieB    schedule 13.11.2015    source источник
comment
Не могли бы вы предоставить работоспособный пример, показывающий проблему? Вероятно, Apache сам устанавливает этот заголовок под капотом. Перечислите заголовки и проверьте, что происходит.   -  person Opal    schedule 13.11.2015
comment
Я обнаружил точно такую ​​же проблему, и будьте уверены. Он отлично работает с использованием curl.   -  person Nikhil    schedule 03.10.2017


Ответы (1)


Вчера я смог использовать октатный поток

given().urlEncodingEnabled(false)
            .config(RestAssured.config()
                    .encoderConfig(new EncoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false)
                            .encodeContentTypeAs("application/octet-stream", ContentType.TEXT)))

Вам не нужно добавлять кодирование передачи, поскольку фреймворк REST Assure сделает это за вас.

Вам нужен urlEncodingEnabled, поскольку он автоматически кодирует, а encodeContentTypeAs - внутреннюю структуру с использованием сериализатора.

Это может помочь другим, кто может столкнуться с подобной проблемой в будущем.

person Nikhil    schedule 04.10.2017