3

我对 Java 和 REST/REST 很熟悉。我正在尝试使用“Transfer-Encoding:chunked”集(通过标头)创建一个 POST 请求,但出现异常“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:传输编码标头已经存在”。

有谁知道为什么我会收到异常/我如何解决它?提前致谢。

4

1 回答 1

0

昨天我可以使用八进制流

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

您不需要添加传输编码,因为 REST Assure 框架会为您完成。

您需要 urlEncodingEnabled 因为它自动编码,同时需要 encodeContentTypeAs 作为使用序列化程序的内部框架。

这可能会帮助其他将来可能面临类似问题的人。

于 2017-10-04T17:08:51.727 回答