I'm trying to post a JSON payload to a Public POST Rest API in MuleESB but I'm getting this error:
org.mule.module.http.internal.request.ResponseValidatorException: Response code 404 mapped as failure.
I'm able to call the API with JSON body via Postman Chrome App, but not via Postman Desktop App or MuleESB. I've Google-ing around in the past 2 days but still have no clue what I'm missing. Please enlighten me if you have a clue what caused this not to work.
This is the JSON payload:
{
"username": "dummy",
"email": "dummy@dummy.com",
"firstName": "dummy",
"lastName": "dummy"
}
Here's the snippet of my MuleESB code (I'm using 3.8.3):
<http:request-config name="HTTP_Request_Configuration" host="api.domain.com" port="443" doc:name="HTTP Request Configuration" protocol="HTTPS" responseTimeout="180000" tlsContext-ref="TLS_TrustStore"/>
<tls:context name="TLS_TrustStore" doc:name="TLS">
<tls:trust-store path="cacerts.jks" password="pwd"/>
</tls:context>
...
<dw:transform-message doc:name="Transform Message" metadata:id="c77537ba-aaf3-4497-9f09-06792d1f7556">
<dw:input-payload mimeType="application/java"/>
<dw:input-variable doc:sample="sample_data\UserDefined.dwl" variableName="userData"/>
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
username: flowVars.username as :string,
email: flowVars.email as :string,
firstName: flowVars.firstName as :string,
lastName: flowVars.lastName as :string
}]]></dw:set-payload>
</dw:transform-message>
<logger message="payload:#[payload]" level="INFO" doc:name="Logger"/>
<set-property propertyName="Content-Type" value="application/json" encoding="UTF-8" mimeType="application/json" doc:name="Property"/>
<until-successful maxRetries="3" doc:name="Until Successful" synchronous="true">
<http:request config-ref="HTTP_Request_Configuration" path="/api/1/users" method="POST" doc:name="HTTP">
<http:request-builder>
<http:header headerName="Authorization" value="abcdefg"/>
</http:request-builder>
</http:request>
</until-successful>