Java 请放心-我该如何鼓动;传输编码:分块";-我目前收到apache错误消息;传输编码标头已存在“0”;

Java 请放心-我该如何鼓动;传输编码:分块";-我目前收到apache错误消息;传输编码标头已存在“0”;,java,apache,rest,transfer-encoding,Java,Apache,Rest,Transfer Encoding,我对Java非常陌生,请放心。 我试图创建一个设置为“Transfer Encoding:chunked”的POST请求(通过一个头),但是我得到了一个异常“org.apache.http.ProtocolException:Transfer Encoding头已经存在” 我正在使用的代码类似于以下内容。。。。。 @试验 ...... 给定() .Header(使用设置所需标头的方法,包括“传输编码”) .body(“testdata.getBytes()) .contentType(Media

我对Java非常陌生,请放心。 我试图创建一个设置为“Transfer Encoding:chunked”的POST请求(通过一个头),但是我得到了一个异常“org.apache.http.ProtocolException:Transfer Encoding头已经存在”

我正在使用的代码类似于以下内容。。。。。 @试验 ...... 给定() .Header(使用设置所需标头的方法,包括“传输编码”) .body(“testdata.getBytes()) .contentType(MediaType.APPLICATION\u八位字节\u流) .log().all() .expect() .statusCode(HttpStatus.SC\u正常) .post()

但是我得到了异常“org.apache.http.ProtocolException:Transfer-encoding头已经存在”

有人知道我为什么会遇到异常/我如何解决它吗??
提前谢谢。

昨天我可以使用octate stream

given().urlEncodingEnabled(false)
            .config(RestAssured.config()
                    .encoderConfig(new EncoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false)
                            .encodeContentTypeAs("application/octet-stream", ContentType.TEXT)))
您不需要添加传输编码,因为REST Assure框架可以为您添加传输编码

您需要启用urlencoding,因为它会自动编码,而需要encodeContentTypeAs作为使用序列化程序的内部框架


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

您能提供一个可运行的示例来说明问题吗?可能Apache会自己在引擎盖下设置此标题。列出标题并验证发生了什么。我发现了与rest assured完全相同的问题。使用curl可以很好地工作。