HTTP-запрос Mule, выдающий 404, отображенный как сбой - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь передать несколько параметров URI в запросе http следующим образом:

    <http:listener-config name="HTTP_Listener_Configuration"
    host="localhost" port="8081" doc:name="HTTP Listener Configuration"
    connectionIdleTimeout="40000" />
<http:request-config name="HTTP_Request_Configuration1" protocol="HTTPS" host="" port="443" doc:name="HTTP Request Configuration" connectionIdleTimeout="300000" responseTimeout="50000">
    <http:basic-authentication username="user" password="123"/>
</http:request-config>    
<flow name="testFlow">
    <http:listener config-ref="HTTP_Listener_Configuration"
        path="/paypal" allowedMethods="GET" doc:name="HTTP" />
    <set-variable variableName="config" value="#[{'p1':'3054', 'p2':'child/Lines'}]" doc:name="Variable"/>
    <http:request config-ref="HTTP_Request_Configuration1" path="/resources/shipment/{p1}/{p2}" method="GET" doc:name="HTTP">
        <http:request-builder>
            <http:uri-params expression="#[flowVars.config]"/>
        </http:request-builder>
    </http:request>
</flow>

Но это дает мне ошибку, как показано ниже:

Код ответа 404. отображается как сбой.

ERROR 2019-01-04 18:46:34,526 
[[paypaltest].HTTP_Listener_Configuration.worker.01] 
org.mule.exception.DefaultMessagingExceptionStrategy: 


********************************************************************************
Message               : Response code 404 mapped as failure.
Payload               : org.glassfish.grizzly.utils.BufferInputStream@b473ec2
Element               : /testFlow/processors/1 @ test:test.xml:29 (HTTP)
Element XML           : <http:request config-ref="HTTP_Request_Configuration1" path="/resources/shipments/{p1}/{p2}" method="GET" doc:name="HTTP">
                        <http:request-builder>
                        <http:uri-params expression="#[flowVars.config]"></http:uri-params>
                        </http:request-builder>
                        </http:request>
--------------------------------------------------------------------------------
Root Exception stack trace:
org.mule.module.http.internal.request.ResponseValidatorException: Response code 404 mapped as failure.

Пожалуйста, дайте мне знать, если какая-либо помощь может быть предоставлена!

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Проблема, с которой я столкнулся, была уникальной для меня, я попробовал этот вызов API REST из SOAPUI, и там он выдал мне ту же ошибку, т.е. 404 not found, поэтому я сравнил ее с запросом POSTMAN и обнаружил, что заголовок Authorization был отсутствующим элементомза это.После добавления этого к http header все заработало отлично.

0 голосов
/ 09 января 2019

Пожалуйста, обратитесь https://docs.mulesoft.com/connectors/http/http-authentication

вот два решения: 1. Добавьте preemptive = "true" в базовой конфигурации аутентификации Превентивная опция передает имя пользователя и пароль, не ожидая запроса от сервера.

  1. Добавить авторизацию в http: header value = "Basic dXNlcjoxMjM ="
0 голосов
/ 04 января 2019

Это означает, что URL не существует. Попробуйте ввести URL непосредственно в почтальоне, прежде чем внедрять в Mule. Так как вы уничтожили хост = "", я притворюсь, что это example.com. Я предполагаю, что у него проблема с p2. Если вы хотите отправить фактическую строку, вам нужно URL-адрес с кодировкой "/", который является %2F

Итак, чтобы проверить попадание https://www.example.com/resources/shipments/3054/child%2FLines, с помощью базовой авторизации для авторизации.

Почтальон: https://www.getpostman.com/apps

...