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.

How to use Custom Header in REST API in serviceNow

Neeraj Modi
Tera Guru

We have a requirement to send a custom header, key value pair in the scripted REST API and the second servicenow instance should be able to read the custom header.

 

I am using the below shown script but nothing I am able to achieve so far.

 

Any help here will be much appricicated. 

var request = new sn_ws.RESTMessageV2();
request.setEndpoint('<EndPoint>');
request.setHttpMethod('GET');

//Eg. UserName="admin", Password="admin" for this code sample.
var user = 'admin';
var password = 'admin';

request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader("Test-Header", "CustomHeaderValue");

var response = request.execute();

gs.log("getBody --> " + response.getBody()); //Getting Body
gs.log("getStatusCode --> " + response.getStatusCode()); //Getting 200
gs.log("getRequestHeader -->  " + response.getRequestHeader()); //Getting undefined
gs.log("getRequestHeaders -->  " + response.getRequestHeaders()); //Getting undefined
gs.log("getHeaders --> " + JSON.stringify(response.getHeaders())); //Getting other headers but not the custom one.
gs.log("getAllHeaders --> " + response.getAllHeaders()); //Getting other headers but not the custom one.

 

 

1 ACCEPTED SOLUTION

Kieran Anson
Kilo Patron

You need to call getRequestHeaders() on the request variable, not the response.

gs.log("getBody --> " + response.getBody()); //Getting Body
gs.log("getStatusCode --> " + response.getStatusCode()); //Getting 200
gs.log("getRequestHeader -->  " + request.getRequestHeader('header_key_here')); //Getting undefined
gs.log("getRequestHeaders -->  " + request.getRequestHeaders()); //Getting undefined
gs.log("getHeaders --> " + JSON.stringify(request.getHeaders())); //Getting other headers but not the custom one.
gs.log("getAllHeaders --> " + response.getAllHeaders()); //Getting other headers but not the custom one.

View solution in original post

1 REPLY 1

Kieran Anson
Kilo Patron

You need to call getRequestHeaders() on the request variable, not the response.

gs.log("getBody --> " + response.getBody()); //Getting Body
gs.log("getStatusCode --> " + response.getStatusCode()); //Getting 200
gs.log("getRequestHeader -->  " + request.getRequestHeader('header_key_here')); //Getting undefined
gs.log("getRequestHeaders -->  " + request.getRequestHeaders()); //Getting undefined
gs.log("getHeaders --> " + JSON.stringify(request.getHeaders())); //Getting other headers but not the custom one.
gs.log("getAllHeaders --> " + response.getAllHeaders()); //Getting other headers but not the custom one.