Search code examples
xmlhttpmulemule-flow

Get XML from URL with Mule


I have a basic mule flow:

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf" xmlns:jersey="http://www.mulesoft.org/schema/mule/jersey" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.5.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd
http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd">
    <flow name="flow_test" doc:name="flow_test">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8089" doc:name="HTTP"/>
        <logger level="INFO" doc:name="Logger"/>
        <logger message="#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/>

    </flow>
</mule>

I use the logger to show a message by console using this value:

#[message.payloadAs(java.lang.String)]

The problem is that I only get this message:

INFO 2015-05-27 12:36:42,659 [[test].connector.http.mule.default.receiver.02] org.mule.api.processor.LoggerMessageProcessor: /

Where the "/" value would be the XML. What should I need to do to display the XML?

Update: The problem is that the http.method INBOUND is GET and it would be POST to display the data. Can I transform the GET to POST?

Thanks.


Solution

  • You don't need to transform anything in http inbound endpoint inorder to get data... if you post certain data to this flow using a Rest client or postman, you will automatically get that data in you flow and can print it in logger.

    You just need to post data from outside to this flow as I mentioned using Rest client or postman.. you will automatically get the data in the flow