繁体   English   中英

WSO2 API Manager 1.10问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM