REST Assured - 我如何发起“Transfer-Encoding:chunked” - 我目前收到apache错误“转码编码头已经存在”

时间:2015-11-13 13:43:40

标签: java apache rest transfer-encoding

我对Java和REST / REST保证很新。 我正在尝试创建一个带有“Transfer-Encoding:chunked”设置的POST请求(通过Header),但我得到异常“org.apache.http.ProtocolException:Transfer-encoding header已经存在”。

我使用的代码类似于以下.....     @测试     ......     给予()     .headers(使用设置所需标头的方法,包括“传输编码”)     。体( “TESTDATA” .getBytes())     .contentType(MediaType.APPLICATION_OCTET_STREAM)     .LOG()所有。()     。期望()     .statusCode(HttpStatus.SC_OK)     .POST();

但我得到异常“org.apache.http.ProtocolException:传输编码头已经存在”。

有没有人知道为什么我得到异常/如何解决它? 提前致谢。

1 个答案:

答案 0 :(得分:0)

昨天我能够使用octate stream

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

您不需要添加Transfer-encoding,因为REST Assure框架会为您执行此操作。

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

这可能会帮助其他可能在将来遇到类似问题的人。