有没有办法使用 Apache 的 HTTPClient 将原始字节添加到 post 参数?我的动机是以特定编码流式传输流的原始字节,然后测试该数据到达服务器时会发生什么情况。
编辑:我注意到 Apache 有一个已弃用的方法,可以使用输入流添加到请求主体,因此我可以将其提供给 ByteArrayInputStream,但是有什么更好的/未弃用的方法吗?
最佳答案
(您没有指定,所以我假设您使用的是 Apache HttpClient 版本 4.x)
我认为您不能将原始字节“添加”到正常创建的请求的 POST 参数中。
但是,应该可以创建一个带有 HttpEntity
的 PostMethod
,它包含合法参数以及一些编码不正确的内容。您可能需要自己对内容进行格式化和编码,但您可以通过将有效参数放入 UrlEncodedFormEntity
,然后使用 writeTo
方法将格式化/编码版本提取到 ByteArrayOutputStream
中。破解内容字节后,将它们转换为具有适当内容类型和编码参数的 ByteArrayEntity
实例。
会很乱...
关于java - 使用 Apache HttpClient 将原始字节添加到发布参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455694/