Мы сталкиваемся с проблемой, когда вызов конечной точки REST WSO2 API завершается с ошибкой «412 Precondition Failed», когда Content-Length превышает 1068. Просто добавив пробел к запросу (увеличивая размер до 1069) вызывает этот отказ. Эта проблема также может возникать, когда длина контента меньше 1069, если API называется достаточно быстро (используя SOAPUI для тестирования). У нас есть теория, что заголовок и тело разделяются между пакетами и смущают запрос. Мы пытались отключить куски, и это не повлияло на вещи. Когда обратный сервис REST вызывается напрямую, он работает нормально.WSO2 API Manager 1.10 issue
0
A
ответ
0
Вы можете отключить chunking, как показано ниже, с помощью посредника свойств, если вы вызываете конечную точку 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>
Sample прокси inSequence
<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>