2016-02-05 54 views
1

我在WSO2 AM中設置了一個REST端點,該REST端點調出到另一個REST端點。撥打電話時,我收到一個411響應代碼。請求包含JSON正文,內容類型和接受標頭都設置爲application/json。我可以使用相同的參數直接調用WSO2正在訪問的支持服務,並且它可以正常工作。看來WSO2 AM正在剝離或不發送內容長度。411對從WSO2 API管理器發佈到REST端點的響應

爲什麼內容長度未被髮送到正在訪問的REST端點?

+0

在什麼API Manager版本是你想?你正在發送一個請求還是請求? – lakshman

+0

POST和版本1.10 –

回答

0

默認情況下,發送內容長度處於禁用狀態,因爲它會導致性能下降。但是你可以通過在api的序列中添加以下內容來啓用它。 (見https://docs.wso2.com/display/AM1100/Adding+Mediation+Extensions上添加自定義序列,以一個API)

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

下面是示例sequnce

<sequence xmlns="http://ws.apache.org/ns/synapse" name="contentLengthadd"> 
    <property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/> 
    <property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"></property> 
</sequence> 

該序列會得到從傳入的請求的請求內容的長度和請求報頭將它傳遞到後端。

你可以閱讀更多有關這兩個屬性在https://docs.wso2.com/display/ESB481/HTTP+Transport+Properties#HTTPTransportProperties-FORCE_HTTP_CONTENT_LENGTH

+0

我創建了一個名爲WSO2AM - Ext - Out.xml的文件,嘗試使其成爲全局參數。我將上面的XML示例複製到該文件中,更改名稱以匹配文件名。我在你提到的鏈接上根據文檔做了這個。完成這個並重新啓動後,我仍然收到一個411.一個告誡,我正在APIM Store中測試它,並且正在嘗試使用Curl。 –

+0

@MikeH序列應該在序列中,而不是在序列中。所以序列名稱應該是WSO2AM - Ext - In。 –