使用Apache HttpClient将原始字节添加到post参数

时间:2010-12-15 22:40:10

标签: java apache post httpclient

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

编辑:我注意到Apache有一个不赞成使用输入流添加到请求体的方法,所以我可以用ByteArrayInputStream来提供它,但有没有更好/不被弃用?

1 个答案:

答案 0 :(得分:1)

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

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

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

这将是凌乱的......