[英]WSO2 API Manager 1.10 issue
我们遇到了一个问题,即当Content-Length超过1068时,对WSO2 API REST端点的调用失败并显示“ 412 Precondition Failed”。仅向请求添加空格(将大小增加到1069)会导致此失败。 如果调用API的速度足够快(使用SOAPUI进行测试),则当内容长度小于1069时,也会发生此问题。 我们有一个理论,即报头和正文在数据包之间拆分,并使请求混乱。 我们试图关闭分块,但这并没有影响任何事情。 当直接调用后端REST服务时,它可以正常工作。
如果正在调用SOAP端点,则可以使用属性介体来关闭以下分块。 但是,您必须确保SOAP端点也期望非分块请求。
<property name=”DISABLE_CHUNKING” value=”true” scope=”axis2″/>
但是,如果您使用的是REST端点,则上述属性有时可能无法正常工作。 在这种情况下,我们需要确保将Content-Length标头附加到请求中。 我们可以使用以下两个属性来附加Content-Length标头。
<property name="FORCE_HTTP_CONTENT_LENGTH" value="true" scope="axis2"></property>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"></property>
样本代理顺序
<inSequence>
<log level="custom">
<property name="msg" value="Executing IN sequence"></property>
</log>
<property name="FORCE_HTTP_CONTENT_LENGTH" value="true" scope="axis2"></property>
<property name="COPY_CONTENT_LENGTH_FROM_INCOMING" value="true" scope="axis2"></property>
<send>
<endpoint>
<address uri="https://www.google.com" format="rest"></address>
</endpoint>
</send>
</inSequence>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.