0
BruS
05.06.18
✎
18:18
|
Доброго всем.
Возникла необходимость в получении данных по SOAP API из 7.7 (в 8-ке все норм через WSОпределение, но нужно из 7.7)
Что выяснил:
1. Сервис на Win7 и выше не работает с СоздатьОбъект("MSSOAP.SoapClient30")
Пакет SoapClient найти и установить можно, но при обращении к API ошибка: Client:Unspecified client error. HRESULT=0x80070057: Параметр задан неверно.
2. Установил SoapUI, и попытался обратиться к WSDL-сервису через POST запрос.
Не решена проблема: в результате запроса возвращается полное описание сервиса (WSDL-схема) вместо нужного мне результата (в SoapUI все норм).
Вот что делал:
Код на 7.7 (делал по разному, пока так)
xmlParser = СоздатьОбъект("Msxml2.DOMDocument");
xmlParser.load("d:\request.xml");
URL=";;
MSXML2 = СоздатьОбъект("MSXML2.XMLHTTP");
MSXML2.open("POST", URL, 0, "_________", "_______________");
MSXML2.setRequestHeader("Accept-Encoding", "gzip,deflate");
MSXML2.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
MSXML2.setRequestHeader("SOAPAction", ";);
MSXML2.setRequestHeader("Host", "client.grandline.ru");
MSXML2.setRequestHeader("Connection", "Keep-Alive");
MSXML2.setRequestHeader("User-Agent", "Apache-HttpClient/4.1.1 (java 1.5)");
MSXML2.send(xmlParser.xml);
Если MSXML2.Status <> 200 Тогда
Сообщить("Ответ сервера не ""Ок""!");
Возврат;
КонецЕсли;
xmlParser.loadXML(MSXML2.responseXML.xml);
xmlParser.Save("d:\gr.xml");
Файл request.xml
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="; xmlns:cli=";
<soapenv:Header/>
<soapenv:Body>
<cli:getAgreements>
<cli:api_key>___________________________</cli:api_key>
</cli:getAgreements>
</soapenv:Body>
</soapenv:Envelope>
Может кто-нить сталкивался, в чем затык - не могу пока понять.
|
|