HttpClient 4.1,InputStreamEntity,自动计算长度

时间:2011-02-21 02:32:51

标签: java apache-httpclient-4.x

HttpClient 3.1我们有

InputStreamRequestEntity.CONTENT_LENGTH_AUTO
   // The content length will be calculated automatically.

如何在4.1中为InputStreamEntity实现相同的效果?

2 个答案:

答案 0 :(得分:3)

如果处理HTTP 1.1,可以将-1作为长度。它将切换到(更有效)分块编码,您不必明确指定内容长度;此外,您还可以获得其他好处。

您可以查看http://en.wikipedia.org/wiki/Chunked_transfer_encoding以获取有关分块编码的更多详细信息。

答案 1 :(得分:-1)

你不能'他们在新版本中完全混淆了API。以前的做法是将整个流缓冲到内存中的字节数组中,所以现在你自己做,然后使用ByteArrayEntity。

请在此处查看原始代码:http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/java/org/apache/commons/httpclient/methods/InputStreamRequestEntity.java?view=markup

第125行。

整个API就像现在一样,所有的易用性都消失了。也许它更好,更安全的实现,但它是可怕的API。