2016-05-10 1 views
0

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

ответ

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>