0

HttpClient 3.1中,我们有

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

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

4

2 回答 2

3

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

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

于 2012-03-16T09:53:54.227 回答
-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。

于 2011-07-11T09:15:09.497 回答