HTTP Transport Properties

Info

The following are HTTP transport properties that can be used with the Property mediator and the Property Group mediator.

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

Parameter Description

Name

POST_TO_URI

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

This property makes the request URL that is sent from the Micro Integrator a complete URL. When set to false only the context path will be included in the request URL that is sent. It is important that this property is set to true when the Micro Integrator needs to communicate with the back-end service through a proxy server.

Example

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

FORCE_SC_ACCEPTED

Parameter Description

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 Micro Integrator receives the message so that the client stops waiting for a response.

Example

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

DISABLE_CHUNKING

Parameter Description

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 Micro Integrator 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.


Note:

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

Parameter Description

Name

NO_ENTITY_BODY

Possible Values

"true", "false"

Default Behavior

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

Scope

Axis2

Description

Set this property if you want to do the following:

  • check if an incoming request to the mediation flow has an entity body or not
  • check if an outgoing request/response generated from the mediation flow has an entity body or not
Note:

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" value="true" scope="axis2" type="BOOLEAN"/>

FORCE_HTTP_1.0

Parameter Description

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

Parameter Description

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"/>

HTTP_SC_DESC

Parameter Description

Name

HTTP_SC_DESC

Possible Values

HTTP response's Reason- Phrase that is sent by the backend. For example, if the backend sends the response's status as HTTP/1.1 200 OK, then the value of HTTP_SC_DESC is OK.

Default Behavior

none

Scope

axis2

Description

Set the HTTP status message (Reason-Phrase).

Example

<property name="HTTP_SC_DESC" value="Your description here" scope="axis2"/>

FAULTS_AS_HTTP_200

Parameter Description

Name

FAULTS_AS_HTTP_200

Possible Values

"true", "false"

Default Behavior

false

Scope

axis2

Description

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

Example

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

NO_KEEPALIVE

Parameter Description

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

Parameter Description

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

Parameter Description

Name

REQUEST_HOST_HEADER

Possible Values

string

Default Behavior

The Micro Integrator 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

Parameter Description

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

Parameter Description

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 Micro Integrator 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.

Note:

This property can cause performance degradation, and thereby, you should only use it with message relay. If you set this to true, the Micro Integrator 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

Parameter Description

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"/>
Top