Имя: Пароль:
1C
1С v8
xml-запрос к веб-сервису
0 Maka
 
21.06.12
11:21
День добрый!
Понимаю, что тема заезженная, и в поиске много что есть, но все равно не могу разобраться.
Ситуация такая - Есть сервер у клиента, на котором поднят веб-сервис, на который надо передать данные и получить оттуда ответ. (Конкретно - это 7 континент, может уже кто с ним работал...). Через HTTPСоединие нарываюсь на известную ошибку о сертификате.
Если через WinHttpRequest - то вроде отрабатывает, но никакого ответа я не получаю. Может кто пнет меня в нужном направлении?  
Код такой:
   WinHttp= Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
   
   Скрипт= Новый COMОбъект("MSScriptControl.ScriptControl");
   Скрипт.language="javascript";
       
   Скрипт.AddObject("WinHttp",WinHttp);
   Скрипт.Eval("WinHttp.Option(2)=1251");
   Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags
   
   Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects
   
   Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects
   
   WinHttp.Open("POST","https://dip.7cont.ru/DataExch/DataExchangeService.asmx",0);
   
   ЗапросНаСайт =
   "<Root>
   |<Autorization Login=""guest"" Password=""084E0343A0486FF05530DF6C705C8B""</>
   |<Request ProcedureId=9</>
   |</Root>";
   WinHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
   
   WinHttp.Send(ЗапросНаСайт);// Параметром передаем POST-данные для страници тут как раз
   
   Текст = Новый ТекстовыйДокумент;
   Текст.ДобавитьСтроку(WinHttp.ResponseText());
   Текст.Записать("D:\otvet.xml");
Заранее благодарен...
1 Fragster
 
гуру
21.06.12
11:24
там аутентификация по клиентскому сертификату?
2 Maka
 
21.06.12
11:26
Нет. По крайней мере в описалове про это ничего не говорится
3 Maka
 
21.06.12
13:03
up
4 oleg_km
 
21.06.12
13:12
А откуда взялся именно этот запрос. На сайте все запроса во-первых оформлены как SOAP, т.е. в заголовке присутствует
SOAPAction: "http://tempuri.org/wmV6GetBranch"

а в теле запроса есть конверт:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>

...

 </soap:Body>
</soap:Envelope>

А во-вторых я такого запроса не нашел <Root>
Запули им запрос из примеров
5 Maka
 
21.06.12
13:18
(4) Такой запрос они прислали в описании формата. Поэтому и мучаю его
6 Maka
 
21.06.12
13:29
(4) Да, спасибо за пинок в нужном направлении:)