This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

HTTP Transport Properties

HTTP transport properties allow you to configure how the HTTP transport processes messages, such as forcing a 202 HTTP response to the client so that it stops waiting for a response, setting the HTTP status code, and appending a context to the target URL in RESTful invocations.

POST_TO_URI

Name

POST_TO_URI

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

This property makes the outgoing URL of the ESB a complete URL. This is important when we talk through a Proxy Server.

Example

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

FORCE_SC_ACCEPTED

Name

FORCE_SC_ACCEPTED

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

When set to true, this property forces a 202 HTTP response to the client immediately after the current execution thread finishes, so that the client stops waiting for a response.

Example

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

DISABLE_CHUNKING

Name

DISABLE_CHUNKING

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

If you set this to true, it disables HTTP chunking for outgoing messages. Instead, the ESB builds the message to calculate the content length and then sends the particular message to the backend with the content length (e.g., Content-Length: 25).

You can use this parameter if the client sends the request with HTTP chunking (i.e., with Transfer Encoding:chunked) although you need to send the message without HTTP chunking to the backend, or if you need to modify the message payload, which the client receives before sending it to the backend.

This property might decrease performance since the messages get built per each invocation. Also, this property does not affect Callout mediators, whose chunking must be disabled separately.

Example

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

NO_ENTITY_BODY

Name

NO_ENTITY_BODY

Possible Values

none

Default Behavior

In case of GET and DELETE requests this property is set to true.

Scope

axis2

Description

This property should be set if a user wants to generate a response from the ESB to a request without an entity body, for example, GET request.

If using the PayloadFactory mediator, this property does not need to be manually set since it is done automatically by the mediator.

Example

<property name="NO_ENTITY_BODY" action="remove" scope="axis2"/>

FORCE_HTTP_1.0

Name

FORCE_HTTP_1.0

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

Force HTTP 1.0 for outgoing HTTP messages.

Example

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

HTTP_SC

Name

HTTP_SC

Possible Values

HTTP status code number

Default Behavior

none

Scope

axis2

Description

Set the HTTP status code.

Example

<property name="HTTP_SC" value="500" scope="axis2"/>

FAULTS_AS_HTTP_200

Name

FAULTS_AS_HTTP_200

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

When ESB receives a soap fault as a HTTP 500 message, ESB will forward this fault to client with status code 200.

Example

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

NO_KEEPALIVE

Name

NO_KEEPALIVE

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

Disables HTTP keep alive for outgoing requests.

Example

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

REST_URL_POSTFIX

Name

REST_URL_POSTFIX

Possible Values

A URL fragment starting with "/"

Default Behavior

In the case of GET requests through an address endpoint, this contains the query string.

Scope

axis2

Description

The value of this property will be appended to the target URL when sending messages out in a RESTful manner through an address endpoint. This is useful when you need to append a context to the target URL in case of RESTful invocations. If you are using an HTTP endpoint instead of an address endpoint, specify variables in the format of "uri.var.*" instead of using this property.

Example

<property name="REST_URL_POSTFIX" value="/context" scope="axis2"/>

REQUEST_HOST_HEADER

Name

REQUEST_HOST_HEADER

Possible Values

string

Default Behavior

ESB will set hostname of target endpoint and port as the HTTP host header

Scope

axis2

Description

The value of this property will be set as the HTTP host header of outgoing request

Example

<property name="REQUEST_HOST_HEADER" value="www.wso2.org" scope="axis2"/>


FORCE_POST_PUT_NOBODY

Name

FORCE_POST_PUT_NOBODY

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

This property allows to send a request without a body for POST and PUT HTTP methods.

Applicable only for HTTP Passthrough transport.

Example

<property name="FORCE_POST_PUT_NOBODY" value="true" scope="axis2" type="BOOLEAN"/>

FORCE_HTTP_CONTENT_LENGTH

Name

FORCE_HTTP_CONTENT_LENGTH

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

If the request sent by the client contains the ‘Content-Length’ header, this property allows the ESB to send the request with the content length (without HTTP chunking) to the back end server.

You should set this to true in scenarios where the backend server is not able to accept chunked content. For example, in a scenario where a pass-through proxy is defined and the backend does not accept chunked content, this property should be used together with the COPY_CONTENT_LENGTH_FROM_INCOMING property, to simply add the content length without chunking.

When HTTP 1.1 is used, this property disables chunking and sends the content length. When HTTP 1.0 is used, the property only sends the content length.

This property can cause performance degradation, and thereby, you should only use it with message relay. If you set this to true, the ESB forwards the content length coming from the client request to the backend without building the message and calculating the content length. Since the message doesn’t get build, using these properties will perform better than using DISABLE_CHUNKING. However, if you change the receiving payload before sending it to the backend, then having this property will result in an error due to a content length mismatch.

Example

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


COPY_CONTENT_LENGTH_FROM_INCOMING

Name

COPY_CONTENT_LENGTH_FROM_INCOMING

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

This property allows the HTTP content length to be copied from an incoming message. It is only valid when the FORCE_HTTP_CONTENT_LENGTH property is used. The COPY_CONTENT_LENGTH_FROM_INCOMING avoids buffering the message in memory for calculating the content length, thus reducing the risk of performance degradation.

Example

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