http

Sends http request. Returns the response as json.

javascript · Common Scripts

Details

IDhttp
Languagejavascript
From Version5.0.0
TagsUtility

README

Sends a HTTP request and returns the response as JSON.

Script Data


Name Description
Script Type javascript
Tags Utility
Cortex XSOAR Version 3.5.0+

Inputs


Argument Name Description
method The method for the http request.
body The body for the http request.
url The URL for the http request.
headers The headers for the http request, in the format of “key1:value1,key2:value2, …”.
insecure Trust any certificate (not secure).
unsecure Trust any certificate (not secure).
proxy Use the system proxy settings.
username The user for the http request.
password The password for the http request.
saveAsFile Whether to save the file. The default is “no”.
filename The filename from headers if the filename is not given. The default is “http-file”.

Outputs


Path Description Type
HttpRequest.Response The response for the http request. Unknown
var requestObj = {
    Method: args.method,
};

if (args.username) {
    requestObj.Username = args.username;
}

if (args.username) {
    requestObj.Password = args.password;
}

if (args.body) {
    var body = (typeof args.body) === 'string' ? args.body : JSON.stringify(args.body);
    requestObj.Body = body;
}

if (args.headers) {
    var headersJs = {};
    var headersArr = args.headers.split(',');
    for (i = 0; i < headersArr.length; i++) {
        var keyValue = headersArr[i].split(':');
        if (keyValue.length != 2 ){
            throw 'Invalid headers. Please make sure you have entered "headers" in correct format.';
        } else {
            headersJs[keyValue[0]] = [keyValue[1]];
        }
    }
    requestObj.Headers = headersJs;
}
if (args.saveAsFile === 'yes') {
    requestObj.SaveToFile = true;
}

var unsecure = (args.unsecure === 'true' || args.insecure === 'true');
var proxy = (args.proxy === 'true');

// Add scheme if needed
var url = args.url;
var urlLowerCase = url.toLowerCase();
if (!urlLowerCase.startsWith('http://') && !urlLowerCase.startsWith('https://')) {
    url = 'http://' + url;
}

var res = http(url, requestObj, unsecure, proxy);
var fileName;
if (args.filename) {
    fileName = args.filename;
} else if (res && res.Headers && res.Headers['Content-disposition'] && res.Headers['Content-disposition'].length > 0) {
    fileName = res.Headers['Content-disposition'][0];
} else {
    fileName = 'http-file';
}

if (args.saveAsFile === 'yes') {
    return {
        Type: 3,
        FileID: res.Path,
        File: fileName,
        Contents: fileName
    };
}

return {
    Type: entryTypes.note,
    Contents: res,
    ContentsFormat: formats.json,
    EntryContext: {
        'HttpRequest.Response': res
    }
};