我试图在Axis2上使用HTTP 1.1禁用分块传输编码。我已经编辑了axis2.xml并注释掉了相关的参数行,但它仍然在响应chunked。
axis2.xml:
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
<!-- <parameter name="Transfer-Encoding">chunked</parameter> -->
</transportSender>
然后我停止并重新启动Tomcat,但它仍然返回以下标题:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 10 Jun 2014 21:18:44 GMT
这是在localhost上;我使用的是OS X Mavericks,Tomcat 7.0.53和Axis2 1.6.2。
我甚至尝试将协议设置为HTTP / 1.0,但响应仍然返回1.1。就像参数被忽略一样。
我需要使用服务器更改来工作; Axis2客户端没有使用这些服务,因此我无法在客户端上使用options.setProperty(HTTPConstants.CHUNKED, "false");
。
答案 0 :(得分:1)
我们能够使用以下代码禁用客户端的分块传输:
Options options = new Options();
options.setProperty(HTTPConstants.CHUNKED, "false");
this.getStub()._getServiceClient().setOverrideOptions(options);
当然&#34; this.gesStub()&#34; method是我们自己的helper方法来获取生成的stub对象。 使用setOverflowOptions而不是setOptions方法非常重要。