有没有办法使用Apache的HTTPClient将原始字节添加到post参数?我的动机是以特定编码流式传输流的原始字节,然后测试该数据到达服务器时会发生什么。
编辑:我注意到Apache有一个不赞成使用输入流添加到请求体的方法,所以我可以用ByteArrayInputStream来提供它,但有没有更好/不被弃用?
答案 0 :(得分:1)
(你没有指定,所以我假设你使用的是Apache HttpClient版本4.x)
我认为你不能将原始字节“添加”到正常创建请求的POST参数中。
但是,应该可以创建PostMethod
HttpEntity
,其中UrlEncodedFormEntity
包含合法参数,以及一些错误编码的内容。您可能需要自己对内容进行格式化和编码,但是您可以通过将有效参数放入writeTo
,然后使用ByteArrayOutputStream
方法提取格式化/编码版本为ByteArrayEntity
。在您攻击内容字节后,将它们转换为具有适当内容类型和编码参数的{{1}}实例。
这将是凌乱的......