Хорошо!Я понял.После некоторого времени тестирования оказывается, что вызовы SOAP не слишком сложны.Для моего конкретного сценария код Node js выглядит следующим образом:
var request = require("request");
var options = { method: 'POST',
url: 'https://server.someplace.com/MobileClient.asmx',
headers:
{ 'Cache-Control': 'no-cache',
'Content-Type': 'text/xml' },
body: '<?xml version="1.0" encoding="utf-8"?>\r\n<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r\n<soap:Body>\r\n<GetDashboardInfo xmlns ="http://IAmAURL.com/client">\r\n<username>ThisIsNotTheRealUser</username>\r\n<password>ThisIsNotTheRealPassword</password>\r\n<applicationIdentifier>Identifier.827</applicationIdentifier>\r\n<deviceIdentifier>DataTest</deviceIdentifier>\r\n</GetDashboardInfo>\r\n</soap:Body>\r\n</soap:Envelope>' };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
Я постараюсь объяснить это как можно более подробно, пожалуйста, исправьте меня, если я ошибаюсь:
Aздесь мало что происходитЗапрос - это зависимость для узла, которая упрощает вызовы http.В объекте параметров мы определяем метод, который, как я понимаю, всегда POST для вызовов SOAP.URL-адрес - это адрес, по которому вы направляете запрос.Тело - это часть вашего SOAP-запроса, содержащая функции / методы и схемы XML, которые будут использоваться для форматирования ваших данных.Функции зависят от используемого вами API-интерфейса, поэтому уточните, с кем вы извлекаете данные, какие методы они предлагают для предоставления вам данных, которые вам конкретно нужны.Тело также содержит аутентификацию, необходимую для доступа к моей службе мыла.Наконец, я записываю результат (тело) в консоль, которая возвращает все данные, отформатированные в XML.
Отлично!Что теперь?Что ж, теперь мне нужно отформатировать XML в объекты JSON, которые я действительно могу использовать.Для этого я, вероятно, буду использовать пакет узлов xml2json, но это отдельная проблема.
Надеюсь, это кому-нибудь поможет.