Отправить сообщение HTTP с содержимым в Mule

Я пытаюсь отправить простой запрос POST в некоторую конечную точку, где я знаю, что это возможно, и работаю так, как я могу отправить его через консоль SoapUI и Chrome Rest. Успешный запрос выглядит так на картинке:

введите здесь описание изображения

Я безуспешно пытался отправить его через Mule. Я устанавливаю полезную нагрузку как java.util.Map, которая будет содержать все параметры, которые я хочу отправить как контент, но я постоянно получаю ответ 400 Неверный запрос. Вот как это выглядит прямо сейчас:

введите здесь описание изображения

А вот так выглядит наш запрос:

<http:request config-ref="HTTP_Request_Configuration1" path="api/token/" method="POST" doc:name="GetToken" parseResponse="false">
        <http:request-builder>
        </http:request-builder>
    </http:request>

Я предполагаю, что мне не хватает чего-то очень небольшого, например настройки. Кто-нибудь может помочь?

Или, если кто-то знает, как проще всего увидеть точный запрос, который отправляется через Mule? Или какой-то другой способ увидеть отправляемый запрос?

Спасибо!


person Stanislav Ivanov    schedule 17.04.2015    source источник
comment
Не могли бы вы поделиться всем потоком (включая конфигурацию HTTP-запроса)? Кроме того, имейте в виду, что вам придется настроить все заголовки в разделе построителя запросов так же, как вы делаете это с консолью REST.   -  person afelisatti    schedule 17.04.2015
comment
@afelisatti Вот конфиг: <http:request-config name="HTTP_Request_Configuration1" protocol="HTTPS" host="correctsitehere.net" port="443" doc:name="HTTP Request Configuration"> Разве по умолчанию при отправке POST также включаются Content-type и legth?   -  person Stanislav Ivanov    schedule 17.04.2015
comment
Да, но если вы отправляете что-то еще, вам нужно указать это. Я бы попытался установить полезную нагрузку на простой HashMap вместо LinkedHashMap, что, я думаю, вы устанавливаете в преобразователе JSON для объекта из захвата отладки.   -  person afelisatti    schedule 17.04.2015
comment
Я изменил загрузку с HashMap на обычную старую строку, потому что загрузка должна была выглядеть так: username=uuuu&password=ppppp&grant_type=password. После этого я установил Content-Length и тип, и это сработало. Как насчет того, чтобы добавить это в исходную документацию о компоненте HTTP?   -  person Stanislav Ivanov    schedule 20.04.2015


Ответы (2)


Я увидел, что отправляемая информация выглядит так: username=uuuu&password=ppppp&grant_type=password. Вот почему я изменил тип полезной нагрузки с HashMap на String, установил нужные мне параметры, добавил Content-Type и Content-Legth в качестве заголовков в http-запросе, и все заработало нормально.

person Stanislav Ivanov    schedule 20.04.2015

Вы используете Json to Object Transformer, он вам не нужен, так как вы используете параметры формы, вам нужно добавить параметры, необходимые для вызываемой вами службы.

person Bachu Arjun    schedule 21.04.2015