Выполнение POST через прокси из пользовательского коннектора JavaScript ServiceNow - PullRequest
0 голосов
/ 13 сентября 2018

Я создаю пользовательский коннектор JavaScript для чтения данных из API платформы мониторинга SaaS, который будет передан в модуль управления событиями ServiceNow. Мне нужно выполнить как GET, так и POST (для oauth). Это требует, чтобы JS работал на сервере MID внутри корпоративной сети, за прокси-сервером. Среда ServiceNow работает в Кингстоне.

Я написал следующий фрагмент кода (с использованием API-заполнителя) на основе различных других фрагментов по всему месту, но я не могу найти ничего, что позволило бы мне указать прокси-сервер / порт для направления трафика соответствующим образом. В результате время ожидания соединения.

var result = "";

try {
    // Instantiate the HTTPRequest object
    ms.log("JS Connector - Building request");
    var request = new HTTPRequest("https://jsonplaceholder.typicode.com/posts");

    // Add the headers and set http timeout
    ms.log("JS Connector - Adding headers");
    request.addHeader('Content-Type','application/json');
    request.setTimeout(5000);

    // Define the JSON payload
    var json_payload = JSON.parse('{"name":"blah","id":"123"}');
    ms.log("JS Connector - Payload: " + JSON.stringify(json_payload));

    // Go!
    ms.log("JS Connector - About to post...");
    var response = request.post(json_payload);

    // Output the results, if any
    if (response == null) {
        result = "The response returned was null";
        ms.log("JS Connector - " + result);
        this.addError(request.getErrorMessage());
    } else {
        var body = this.getResponseBody(response);
        ms.log("JS Connector - Return code " + response.getStatusCode());
        ms.log("JS Connector - Response body: " + JSON.stringify(body));
        return body;
    }
} catch(err) {
    this.addError("JS Connector - Failed to send data - Error: " + err.message);
    this.addError("JS Connector - Failed to send data - Status: " + httpStatus.toString());
    return "Error";
}

Результат из журналов агента MID-сервера выглядит следующим образом:

09/13/18 10:32:51 (846) Worker-Interactive:ConnectorProbe Slow execution (797ms) of script: script_include:Connector_JS
09/13/18 10:32:51 (846) Worker-Interactive:ConnectorProbe *** Script: Connector_JS - testing connection
09/13/18 10:32:51 (846) Worker-Interactive:ConnectorProbe *** Script: JS Connector - Building request
09/13/18 10:32:51 (846) Worker-Interactive:ConnectorProbe *** Script: JS Connector - Adding headers
09/13/18 10:32:51 (971) Worker-Interactive:ConnectorProbe *** Script: JS Connector - Payload: {"name":"blah","id":"123"}
09/13/18 10:32:51 (971) Worker-Interactive:ConnectorProbe *** Script: JS Connector - About to post...
09/13/18 10:33:02 (003) Worker-Interactive:ConnectorProbe WARNING *** WARNING *** java.net.SocketTimeoutException: connect timed out when posting to https://jsonplaceholder.typicode.com/posts
09/13/18 10:33:02 (003) Worker-Interactive:ConnectorProbe *** Script: JS Connector - The response returned was null
09/13/18 10:33:02 (003) Worker-Interactive:ConnectorProbe *** Script: java.net.SocketTimeoutException: connect timed out when posting to https://jsonplaceholder.typicode.com/posts

Любая помощь очень ценится. Спасибо, куча.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...