Search code examples
muleinbound

Why Mule http inbound endpoint is always GET request


Why Mule http inbound endpoint is always GET request. I'm logging type of http method and it always logs type is GET even I specified method type PUT in http inbound end
point.

 <http:inbound-endpoint exchange-pattern="request-response"
    path="testPath" doc:name="HTTP" 
    host="localhost" port="8083" 
    mimeType="application/json"
    method="PUT"/>

   <logger level="INFO" message="method type #[message.inboundProperties['http.method']]"
   doc:name="Logger"/>  <--- It always logs method is GET

   It never go into following expression block:

<choice doc:name="Choice">
   <when expression="#[message.inboundProperties['http.method']=='PUT']">

I would like to set http method as a "PUT" in http inbound endpoint


Solution

  • The method attribute on http:inbound-endpoint is ineffective: you can put any value there, it won't change anything.

    As Ale suggested, it's up to the HTTP client to use whatever method you want to receive on Mule's side.