我对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:传输编码头已经存在”。
有没有人知道为什么我得到异常/如何解决它? 提前致谢。
答案 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作为内部框架使用序列化程序。
这可能会帮助其他可能在将来遇到类似问题的人。