Configure an HTTP Connector as a Listener

DZone 's Guide to

Configure an HTTP Connector as a Listener

Check out how to set up an HTTP connector (and a requester) in Mulesoft to serve as a listener.

· Integration Zone ·
Free Resource


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


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="" 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>

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

Image title


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.

integrations, mulesoft

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}