Java 使用ApacheHttpClient向post参数添加原始字节

Java 使用ApacheHttpClient向post参数添加原始字节,java,apache,post,httpclient,Java,Apache,Post,Httpclient,有没有办法使用Apache的HTTPClient向post参数添加原始字节?我的动机是以特定的编码流式传输流的原始字节,然后测试数据到达服务器时会发生什么 编辑:我注意到Apache有一个不推荐使用的方法,可以使用inputstream添加到请求正文中,因此我可以将其作为ByteArrayInputStream提供,但是有更好的方法/没有不推荐的方法吗?(您没有指定,所以我假设您使用的是Apache HttpClient版本4.x) 我认为您不能将原始字节“添加”到正常创建请求的POST参数中

有没有办法使用Apache的HTTPClient向post参数添加原始字节?我的动机是以特定的编码流式传输流的原始字节,然后测试数据到达服务器时会发生什么

编辑:我注意到Apache有一个不推荐使用的方法,可以使用inputstream添加到请求正文中,因此我可以将其作为ByteArrayInputStream提供,但是有更好的方法/没有不推荐的方法吗?

(您没有指定,所以我假设您使用的是Apache HttpClient版本4.x)

我认为您不能将原始字节“添加”到正常创建请求的POST参数中

但是,应该可以创建一个
PostMethod
,其中包含合法参数和一些编码错误的内容。您可能需要自己对内容进行格式化和编码,但您可以通过将有效参数放入
UrlEncodedFormEntity
,然后使用
writeTo
方法将格式化/编码版本提取到
ByteArrayOutputStream
。对内容字节进行黑客攻击后,使用适当的内容类型和编码参数将其转换为
ByteArrayEntity
实例

这将是混乱的