Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Getting REST response as null , for the same api curl command is working properly.

meg6
Kilo Expert

Hi ,

I am getting the response when i use curl command    

curl -H 'Accept: application/json' -H 'Content-Type:application/json' -XGET https://someapi.example -H 'authorization:token' , for this I am getting the response.

But when i use it in javascript as following,

var r = new RESTMessage('https://someapi.example', 'get');

r.setStringParameter('token', 'token');

var response = r.execute();

var jsonString = response.getBody();  

var parser = new JSONParser();  

var parsed = parser.parse(jsonString);  

getting error as:org.mozilla.javascript.EcmaError: Cannot convert null to an object.

am i missing anything?

The response here is null.

1 ACCEPTED SOLUTION

Hey,


This worked for me,




var requestBody;


gs.print("start");


var responseBody;


var status;


var sm;


try{


sm = new sn_ws.RESTMessageV2("test", "get");


gs.print("start1");


sm.setRequestHeader("Authorization","token-string");


response = sm.execute();


gs.print("start2");


var jsonString = response.getBody();



Thank you all for your response



View solution in original post

32 REPLIES 32

And also i tried inserting a record in rest messge table and tried as


var requestBody;


gs.print("start");


var responseBody;


var status;


var sm;


try{


sm = new sn_ws.RESTMessageV2("test", "get");  


gs.print("start1");


sm.setAuthenticationProfile('oauth2', 'token');


gs.print("start2");


response = sm.execute();


var jsonString = response.getBody();  


var parser = new JSONParser();  


var parsed = parser.parse(jsonString);  


gs.print("parsed");


responseBody = response.haveError() ? response.getErrorMessage() : response.getBody();


status = response.getStatusCode();


} catch(ex) {


responseBody = ex.getMessage();


status = '500';


} finally {


requestBody = sm ? sm.getRequestBody():null;


}




it is printing gs.print("start1"); ,and not start2. stopped in sm.setAuthenticationProfile('oauth2', 'token');


I am getting nothing.


i am not getting where to define token in that ,sm.setAuthenticationProfile('oauth2', 'token'); this one is sysid


Please add var in below line and try



var sm = new sn_ws.RESTMessageV2("test", "get");


Hi Shishir,


its already there,


var sm;


try{


sm = new sn_ws.RESTMessageV2("test", "get");


oh yes, sorry I missed to notice.