Hi, I am trying throw the error response based on the type of request. It works for JSON request's & other plain requests. But giving error when I sent XML request to the Body.
Here "ProxyRequest" is a context variable containing Proxy request.
Kindly suggest is their any code to handle xml messages...
I think you should not try to convert from JSON to XML in a JavaScript call-out.
There's a JSONToXML policy in Apigee that does this for you.
If I were doing this, I would conditionally add that policy , based on the request accept header. Do this in the proxy response flow. Something like this:
<PostFlow name='PostFlow'>
<Request>
</Request>
<Response>
<Step>
<Condition>request.header.accept = "application/xml" OR request.header.accept = "text/xml"</Condition>
<Name>J2X-Convert-Response-to-XML</Name>
</Step>
</Response>
</PostFlow>
The Condition might need to be different if you want to match other Accept values. (For example, sometimes Accept will have several options, separated by a comma. In which case you would probably need to do a regex match looking for the application/xml or text/xml values in that Condition).
If it is a fault/error, then you would do similar, but attach the JsonToXML policy into a FaultRule, not in the PostFlow/Response.