我在WSO2 AM中设置了一个REST端点,该端点调用另一个REST端点。拨打电话时,我收到411响应代码。该请求包含一个JSON主体,内容类型和接受标头设置为application / json。我可以使用相同的参数直接访问WSO2正在访问的支持服务,并且它可以正常工作。似乎WSO2 AM正在剥离或不发送内容长度。
为什么内容长度没有被发送到正在访问的REST端点?
答案 0 :(得分:0)
默认情况下禁用发送内容长度,因为它可能会导致性能下降。但是你可以通过添加以下api的序列来启用它。 (关于向api添加自定义序列,请参阅https://docs.wso2.com/display/AM1100/Adding+Mediation+Extensions)
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"/>
<property name="FORCE_HTTP_CONTENT_LENGTH" scope="axis2" value="true"></property>
以下是样本序列
<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>
此序列将从传入的请求请求中获取内容长度,并将请求头传递给后端。
中详细了解这两个属性