How to capture HttpResponse status code from Service CallOut in Extract Variables Policy

Hi

I have a Service Call Out which return Http Status Code.

I want to capture this http status code in Extract Variables Policy so that I can use it as a Condition for raising the fault

Here is the Extract Variables Policy which I am using

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="ParseTokenInfoResponse"> <DisplayName>ParseTokenInfoResponse</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Source clearPayload="false">calloutResponse</Source> <VariablePrefix>tokenInfo</VariablePrefix> <Variable name="status_code">calloutResponse.status.code</Variable> </ExtractVariables>

And for raising the fault

<Step> <FaultRules/> <Name>Raise-Fault</Name> <Condition>NOT(tokenInfo.status_code == 200)</Condition> </Step>

Please let me know what is missing here

Thanks

1 5 4,200
5 REPLIES 5

adas
New Member

Your policy looks correct. Can you try printing the variable in a JavaScript. Here's an example:

http://stackoverflow.com/questions/27060751/how-to-capture-the-http-status-code-from-service-callout...

Hi @arghya das

It is printing the status code in javascript

print("Status Code Variable >> "+context.getVariable("calloutResponse.status.code"));

results in Status Code Variable >> 200

So is it not working after assigning it to a variable ?

The NOT condition doesn't look right. Can you try != or NotEquals

Hi @Abhishek Subramanya

It's not working when I am using custom variable.

Hi @GAURAV,

The ExtractVariable policy is used to extract values within a pattern. In your case, use please use AssignMessage policy to reassign the value calloutResponse.status.code into custom variable status_code -

<?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/>
    <AssignVariable>
        <Name>status_code</Name>
      	<Ref>calloutResponse.status.code</Ref>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

Thanks,

Abhishek