0
votes

We are trying to remove the end end of HTTP chunk character inserted by WSO2 APIM Gateway in HTTP body responses even if the Response Body should be empty (204 Status code).

We are using WSO2 API manager 1.6.0, whenever it receives a message without Content Type (example response Status code 204 No Content) , WSO2 API Manager Gateway includes the Header "Transfer-Encoding : chunked" with a Content Body with 0 (length 5) end of chunk 0\r\n.

In this case a Content-Length of 0 is expected with a completely empty content body.

1) We tried without success first to insert the the following lines in our API definition to enforce a content length of 0 :

under $CARBON_HOME/repository/deployment/server/synapse-configs/default/api/ :

<outsequence>  
    <property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"></property>  
    <property name="COPY_CONTENT_LENGTH_FROM_INCOMING" scope="axis2" value="true">    </property>  
    <send></send>  
</outsequence>  

2) We tried also without success to insert the following lines to disable chunk encoding as described in the WSO2 doc (https://docs.wso2.com/display/ESB450/HTTP+Transport+Specific+Properties) :

<outsequence> 
 <property name="FORCE_HTTP_1.0" value="true" scope="axis2" />
 <property name="DISABLE_CHUNKING" value="true" scope="axis2" />
 <send></send>  
</outsequence> 

3) We also tried to insert these lines within the markups of the API xml definition without success.

Incoming HTTP reponse to WSO2 APIM Gateway :

HTTP/1.1 204 No Content

Server: Apache-Coyote/1.1

Date: Fri, 08 Aug 2014 14:02:57 GMT

Outgoing HTTP response out of WSO2 APIM Gateway :

HTTP/1.1 204 No Content

Access-Control-Allow-Headers: authorization,Access-Control-Allow-Origin,Content-Type
Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS
Date: Fri, 08 Aug 2014 13:56:50 GMT
Server: WSO2-PassThrough-HTTP
Transfer-Encoding: chunked

0

Could you please help us to solve this issue ?

Thanks a lot for your support

JS

1

1 Answers

0
votes

Try adding this property mediator to disable chunking:

  <property name="DISABLE_CHUNKING" value="true" scope="axis2"/>

This property mediator can be used in custom insequences and outsequences. You can also add it to your API templates. Here is a blog post about applying this to the templates: http://hoosierapi.blogspot.com/2014/07/wso2-api-manager-proxing-without.html

Cheers, Colin