Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

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

Modernize your application architectures with microservices and APIs with best practices from this free virtual summit series. Brought to you in partnership with CA Technologies.

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.

The Integration Zone is proudly sponsored by CA Technologies. Learn from expert microservices and API presentations at the Modernizing Application Architectures Virtual Summit Series.

Topics:
mulesoft ,integrations

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}