Saturday, August 6, 2016

Mulesoft Configure an HTTP Connector as a Listener

Introduction

The HTTP connector can send and receive HTTP and HTTPS requests given a selected host, port, and address. So depending on your needs, you can either:
  • Listen for HTTP requests.
  • Send HTTP requests.
Through additional configuration, the connector allows you to:
  • Use TLS encryption to send or receive HTTPS requests.
  • Send Authenticated Requests, via Basic Authentication, Digest, and OAuth.

As HTTP Listener       

To instantiate the connector as an HTTP listener connector, you must place it onto a blank Anypoint Studio canvas into the Source section of a new flow (as the first element in the flow) as you design your Mule application:
Image title

As HTTP Requester

To instantiate the connector as an HTTP request connector, you must place it into the Process section of a flow (anywhere except the beginning of it):
Image title

Demonstration

So, now we will see how an HTTP connector works as an HTTP listener. Below is the target flow to be designed for an HTTP connector as a listener:
Image title

Step 1:  Create a new flow httpconndemoFlow as directed below:
Image title

Step 2: Configure the HTTP listener of httpconndemoFlow for the GET method as:
Image title

Step 3: Add a set payload transformer and a logger just after it, then add values for the respective fields specified below:
Image title
Step 4: Check the XML configuration:
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" version="EE-3.8.0">
    <http:listener-config xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" basePath="/httpdemo" doc:name="HTTP Listener Configuration">    </http:listener-config>
    <flow name="httconndemoFlow">
        <http:listener xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" config-ref="HTTP_Listener_Configuration" path="/" allowedMethods="G" doc:name="HTTP">    </http:listener>
        <set-payload xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" value="#['This is a sample payload']" doc:name="Set Payload">    </set-payload>
        <logger xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" message="#['LOGGER_MSG- '+message.payload]" level="INFO" doc:name="Logger">   </logger>
    </flow>
</mule>

Step 5: Start testing in your browser and check logger messages in the Mule console:
Image title

Conclusion

There you have it! We have seen how an HTTP connector works as a listener. Similarly, an HTTP requester can be configured and used the same way.
An HTTP listener can be configured for different HTTP methods — GET, POST, etc. Obviously, I went with the GET method for this demonstration.

1 comment: