|
Не могу побороть авторизацию для использования вэб-сервиса. | ☑ | ||
---|---|---|---|---|
0
Михаил Козлов
26.02.16
✎
12:27
|
Плохо что-нибудь делать, не понимая. Но приходится.
Сразу обозначу: за решение плачу 1000 руб. Создаю WSСсылку по URL: http://www.dat.de/VehicleRepairOnline/services/Authentication?wsdl WSСсылка создается нормально, показывает и модель данных и Web-сервисы. Пробую авторизоваться. Код такой: Функция Логин() пространствоИмен = "http://sphinx.dat.de/services/Authentication"; WSОпределения = WSСсылки.SilverDATLogin.ПолучитьWSОпределения(); request = WSОпределения.ФабрикаXDTO.Создать(WSОпределения.ФабрикаXDTO.Тип(пространствоИмен,"doLoginRequest")); // request – параметр метода doLogin . Тип – ОбъектXDTO, имена полей и тип (строка) совпадают. // дальше присваиваю значения request.customerLogin = "ikartest"; //customerLogin; request.customerNumber = "3450002"; //customerNumber; request.customerSignature = "jA0EAwMCD898vNK\/JCfCyTP\/MkLTg6pWXvCSJiRkN6pb5jbwkvU4dXYz38vooEpnBXnl08uPBeeMp3\/uJ3N7WSAGAhk==27Pm"; //customerSignature; request.interfacePartnerNumber = "3450002"; //customerNumber; request.interfacePartnerSignature = "jA0EAwMCxT8ofFDAzfNgySsKaEfRJdKTGRwtXXwV6Amqt2QPKq7OdLKifupXckIIrpRjyu9ADGT0pSNi"; //interfacePartnerSignature; //parameters.productVariant = ""; - необязательный параметр прокси = WSСсылки.SilverDATLogin.СоздатьWSПрокси(пространствоИмен, "Authentication", "AuthenticationPort"); // прокси выглядит нормально. рез = прокси.doLogin(request); // тут ошибка: //Ошибка вызова операции сервиса: {http://sphinx.dat.de/services/Authentication}:Authentication:doLogin() //по причине: //Ошибка SOAP сервера: required value 'customerNumber' is missing Возврат рез; КонецФункции Попробовал в SoapUI. Картина такая: «Запрос» к серверу: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://sphinx.dat.de/services/Authentication"> <soapenv:Header/> <soapenv:Body> <aut:doLogin> <request> <customerLogin>ikartest</customerLogin> <customerNumber>3450002</customerNumber> <customerSignature>jA0EAwMCD898vNK\/JCfCyTP\/MkLTg6pWXvCSJiRkN6pb5jbwkvU4dXYz38vooEpnBXnl08uPBeeMp3\/uJ3N7WSAGAhk==27Pm</customerSignature> <interfacePartnerNumber>3450002</interfacePartnerNumber> <interfacePartnerSignature>jA0EAwMCxT8ofFDAzfNgySsKaEfRJdKTGRwtXXwV6Amqt2QPKq7OdLKifupXckIIrpRjyu9ADGT0pSNi</interfacePartnerSignature> <!--Optional:--> <productVariant>?</productVariant> </request> </aut:doLogin> </soapenv:Body> </soapenv:Envelope> Результат (ОК): <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:doLoginResponse xmlns:ns2="http://sphinx.dat.de/services/Authentication"> <sessionID>r79ihge15j6m3uaah98cyyhe</sessionID> </ns2:doLoginResponse> </S:Body> </S:Envelope> Просьба: у кого есть минут 10-15 свободных, попробуйте. Если получится, желательно написать на мыло (в профиле). Пробовал на платформах 8.2.19.116 и 8.3.6.2076 (ОФ, толстый клиент). В 8.3 не петрю. |
|||
1
Михаил Козлов
26.02.16
✎
14:14
|
Подниму.
|
|||
2
Михаил Козлов
26.02.16
✎
17:50
|
Подниму.
|
|||
3
Aistovich
26.02.16
✎
19:14
|
вбил в гугле http://sphinx.dat.de/
эта тема третья в поиске первая вот: but get fault: SOAP Fault: SOAP-ERROR: Encoding: object has no 'customerLogin' property - where problem? how i can fix my error? if possible tell me where wrong? http://stackoverflow.com/questions/19363564/send-xml-data-to-wsdl |
|||
4
Aistovich
26.02.16
✎
19:16
|
Может быть стоит проверить с http://www.dat.de , что учетные данные являются правильными ?
|
|||
5
Aistovich
26.02.16
✎
19:31
|
||||
6
Aistovich
26.02.16
✎
19:40
|
скорей всего куки надо засовывать еще как-то
|
|||
7
Garykom
гуру
26.02.16
✎
21:47
|
||||
8
Garykom
гуру
26.02.16
✎
21:50
|
(7)+ "doLogin" должно содержать "request" типа "doLoginRequest" и уже внутри "customerLogin"
|
|||
9
Serginio1
26.02.16
✎
22:23
|
На .Net авторизация получается. Если нужно могу написать как в Помощь с Web сервисом
|
|||
10
Serginio1
26.02.16
✎
22:24
|
Или можешь сам Использование классов .Net в 1С для новичков
|
|||
11
Serginio1
26.02.16
✎
22:54
|
Запрос такой
POST http://www.dat.de/VehicleRepairOnline/services/Authentication HTTP/1.1 Content-Type: text/xml; charset=utf-8 VsDebuggerCausalityData: uIDPo9aQmnUiaxZMlokr5n3pDGAAAAAADyxwgGDc7Ue7FtdxbumBZyH1oXZji3ZGkUy1HP4VrLAACQAA SOAPAction: "doLogin" Host: http://www.dat.de Content-Length: 734 Expect: 100-continue Accept-Encoding: gzip, deflate Connection: Keep-Alive <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <doLogin xmlns="http://sphinx.dat.de/services/Authentication"> <request xmlns=""> <customerLogin>ikartest</customerLogin> <customerNumber>3450002</customerNumber> <customerSignature>jA0EAwMCD898vNK\/JCfCyTP\/MkLTg6pWXvCSJiRkN6pb5jbwkvU4dXYz38vooEpnBXnl08uPBeeMp3\/uJ3N7WSAGAhk==27Pm</customerSignature> <interfacePartnerNumber>3450002</interfacePartnerNumber> <interfacePartnerSignature>jA0EAwMCxT8ofFDAzfNgySsKaEfRJdKTGRwtXXwV6Amqt2QPKq7OdLKifupXckIIrpRjyu9ADGT0pSNi</interfacePartnerSignature> <productVariant xsi:nil="true"/></request></doLogin> </s:Body> </s:Envelope> |
|||
12
Serginio1
26.02.16
✎
23:14
|
Попробуй
parameters.productVariant = неопределено; |
|||
13
Serginio1
26.02.16
✎
23:33
|
А вот, что отправляет 1С
POST http://www.dat.de/VehicleRepairOnline/services/Authentication HTTP/1.1 Proxy-Authorization: NTLM TlRMTVNTUAABAAAAt7II4gkACQAxAAAACQAJACgAAAAKAFopAAAAD0FMRVhBTkRFUldPUktHUk9VUA== User-Agent: 1C+Enterprise/8.3 Host: http://www.dat.de Accept: */* Connection: Keep-Alive SOAPAction: "doLogin" Content-Type: text/xml; charset=utf-8 Content-Length: 839 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <m:doLogin xmlns:m="http://sphinx.dat.de/services/Authentication"> <request xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <m:customerLogin>ikartest</m:customerLogin> <m:customerNumber>3450002</m:customerNumber> <m:customerSignature>jA0EAwMCD898vNK\/JCfCyTP\/MkLTg6pWXvCSJiRkN6pb5jbwkvU4dXYz38vooEpnBXnl08uPBeeMp3\/uJ3N7WSAGAhk==27Pm</m:customerSignature> <m:interfacePartnerNumber>3450002</m:interfacePartnerNumber> <m:interfacePartnerSignature>jA0EAwMCxT8ofFDAzfNgySsKaEfRJdKTGRwtXXwV6Amqt2QPKq7OdLKifupXckIIrpRjyu9ADGT0pSNi</m:interfacePartnerSignature> <m:productVariant xsi:nil="true"/> </request> </m:doLogin></soap:Body> </soap:Envelope> |
|||
14
Serginio1
26.02.16
✎
23:39
|
В первом запросе нет <soap:Header/>. Хотя в SoapUI он есть
и объявления внутри боди а не реквеста в в SoapUI их вообще нет |
|||
15
Serginio1
26.02.16
✎
23:39
|
Так, что если нужно 9 сообщи.
|
|||
16
Serginio1
26.02.16
✎
23:48
|
Или используй HTTPЗапрос
|
|||
17
Михаил Козлов
29.02.16
✎
10:18
|
Спасибо всем кто ответил. Прошу извинить за поздний ответ: на выходных не было возможности просматривать форум.
Попробую понять (11) и (12). (16) Была такая мысль, хотел сначала через Soap. (9) Спасибо, если не получится - обращусь. |
|||
18
Михаил Козлов
29.02.16
✎
13:45
|
(9) Коллега по работе сделал, то, что Вы предлагали.
Буду дальше тыркаться. Спасибо за участие. |
|||
19
Сергиус
29.02.16
✎
13:51
|
(18)Еще как вариант, можно через WinHttp.WinHttpRequest.5.1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |