Thi*_*kel 2 java http restlet apache-commons-httpclient
我使用Apache Commons HttpClient和Restlet来调用一个宁静的Web服务.不幸的是,我的服务器(基于Ruby on Rails)不喜欢Transfer-Encoding: chunkedHttpClient默认使用的服务器.
有没有办法禁止从客户端使用分块编码的POST?
作为一般规则,对于不被分块的请求,您需要指定post body的确切大小,对于动态生成的数据,这意味着您需要在内存中缓冲整个响应,查看其大小然后才发送它.
Apache客户端文档似乎证实了这一点:AbstractHttpEntity.setChunked()状态
请注意,分块设置仅为提示.如果使用HTTP/1.0,则永远不会执行分块.否则,即使chunked为false,如果实体内容长度未知(-1),HttpClient也必须使用块编码.
正如 Restlet 邮件列表中所述,在 Restlet 2.1 版本中,您可以将 ClientResource#entityBuffering 属性设置为 true 以将内容缓存在内存中并防止分块编码。
| 归档时间: |
|
| 查看次数: |
14092 次 |
| 最近记录: |