Hi All,
I want to mock the error response of a target server, where the response is like:
<?xml version="1.0" encoding="UTF-8"?> <Error> <ErrorCode>2021</ErrorCode> <ErrorMessage>Partner with given apikey not authorized to use this operation.</ErrorMessage> </Error>
I am able to generate the error message except the first line of the message i.e.
<?xml version="1.0" encoding="UTF-8"?>
I am not sure how to do that..Please suggest.
Are you using Assign Message policy to set response to above XML ?
@Anil Sagar: Yes. I am using assign message policy for setting custom error response.
Please suggest the best way to achieve it.
My Assign Message policy is ::
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message-1</DisplayName> <Properties/> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers> <Header name="Content-Type">text/xml; charset=utf-8</Header> </Headers> <QueryParams/> <FormParams/> <!-- <Verb>GET</Verb> --> <Payload contentType="test/xml"> <Error> <ErrorCode>2021</ErrorCode> <ErrorMessage>Partner with given apikey not authorized to use this operation.</ErrorMessage> </Error> </Payload> <Path/> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
Answer by Anil Sagar @ Google
·
Mar 24, 2016 at 10:27 AM
Seems like Assign Message policy doesn't support raw xml with xml initial tag, but you always have power of Javascript policies. See example below i.e working & proxy attached.
var errorResponseXml = '<?xml version="1.0" encoding="UTF-8"?><Error><ErrorCode>2021</ErrorCode><ErrorMessage>Partner with given apikey not authorized to use this operation.</ErrorMessage></Error>'; context.setVariable("errorResponseXml", errorResponseXml);
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message-1</DisplayName> <Properties/> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers> <Header name="Content-Type">text/xml; charset=utf-8</Header> </Headers> <QueryParams/> <FormParams/> <!-- <Verb>GET</Verb> --> <Payload contentType="text/xml">{errorResponseXml}</Payload> <Path/> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>