Я создаю пользовательский коннектор 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
Любая помощь очень ценится.
Спасибо, куча.