Имя: Пароль:
1C
 
Интеграция с веб сервисом - Омнива.
0 Radion
 
01.02.16
11:30
Добрый день, делаю интеграцию с веб сервисом:
имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML
Соединение = Новый HTTPСоединение("217.159.234.93:8080/epmx/services/messagesService.wsdl",8080,Login,Password,,Истина);
Соединение.ОтправитьДляОбработки(имяФайлаОтправки,URL,имяВыходногоФайла,Заголовки);
Получаю ошибку - Internet error:  SSL connect error
Как я предполагаю, ошибка возникает из-за сертификата доступа, которого нет в 1С. Или я ошибаюсь?
1 rphosts
 
01.02.16
11:40
а если порт не 8080 а 443?
2 Radion
 
01.02.16
11:44
(1) если порт 443, то ошибка в виде: Internet error:  Peer certificate cannot be authenticated with given CA certificates
3 rphosts
 
01.02.16
11:47
платформа-то какая?
4 Serginio1
 
01.02.16
11:48
Какое еще  HTTPСоединение("217.159.234.93:8080/epmx/services/messagesService.wsdl

Если хочешь HTTPСоединение то указывай только сервер

Если хочещь подключиться к вэб сервисам то

ОпределениеТ=Новый WSОпределения("217.159.234.93:8080/epmx/services/messagesService.wsdl");
    WSСервис=ОпределениеТ.Сервисы[0];
    ПроксиWS=Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя,,,Новый ЗащищенноеСоединениеOpenSSL());
5 aka AMIGO
 
01.02.16
11:49
(0) Извините, а это не эстонцы скалят зубы?
Не пробовал на похожих ресурсах?
6 rphosts
 
01.02.16
11:51
(4) если его платформа поддерживает HTTPS иначе тоже можно но там или звпускать stunnel или другая любоф с сертификатами.
7 rphosts
 
01.02.16
11:52
(5) не, коннектил УАП с Виалон - тоже ещё тот гемор.
8 Serginio1
 
01.02.16
12:02
Удаленный сертификат недействителен согласно результатам проверки подлинности
9 Serginio1
 
01.02.16
12:04
В браузере
Сертификат безопасности этого веб-сайта был выпущен для веб-сайта с другим адресом.



Наличие ошибок в сертификате безопасности может указывать на попытку обмана или перехвата данных, которые вы отправляете на сервер.
10 Serginio1
 
01.02.16
12:05
А просто по http заходит. Зайди из браузера
11 Radion
 
01.02.16
12:07
(10) из браузера захожу, с данным логином и паролем.
12 Radion
 
01.02.16
12:07
(5) Эстония, да все правильно.
13 Serginio1
 
01.02.16
12:08
(11) Тогда зачем тебе Защищенное соединение?
14 Serginio1
 
01.02.16
12:16
Да и с HTTPСоединение  проще работать так
http://its.1c.ru/db/metod8dev#content:5574:hdoc:_top:httpзапрос
15 Radion
 
01.02.16
12:17
(14) Спасибо, все получилось, файл получаю! Спасибо, огромное!
16 Radion
 
01.02.16
15:39
Обрадовался раньше времени( Получил такой вот ответ:
because:
File access error 'https://testeservice.post.ee/epmx/services/messagesService.wsdl'
because:
Internet error:  access denied (403). <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /epmx/services/messagesService.wsdl:8080/https://testeservice.post.ee/epmx/services/messagesService.wsdl
on this server.</p>
</body></html>

because:
Internet error:  access denied (403)
17 Serginio1
 
01.02.16
16:10
А зачем тебе 8080
18 Serginio1
 
01.02.16
16:11
И зачем тебе wsdl?
Смотри 4
19 Radion
 
02.02.16
12:25
(17) дали дублирующую ссылку на тестовый веб сервис.
TEST web service URL: https://testeservice.post.ee/epmx/services/messagesService
TEST WSDL: https://testeservice.post.ee/epmx/services/messagesService.wsdl
При попытке создания ОпределениеТ=Новый WSОпределения("testeservice.post.ee/epmx/services/messagesService.wsdl"); система сразу выдает ошибку - Service description creation error. http://testeservice.post.ee/epmx/services/messagesService.wsdl
20 Serginio1
 
02.02.16
13:37
(19) Смотри 4
Новый WSОпределения(<МестоположениеWSDL>, <ИмяПользователя>, <Пароль>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>)
21 Serginio1
 
02.02.16
13:37
ОпределениеТ=Новый WSОпределения("https://testeservice.post.ee/epmx/services/messagesService.wsdl ");
22 Serginio1
 
02.02.16
13:44
ОпределениеТ=Новый WSОпределения("https://testeservice.post.ee/epmx/services/messagesService.wsdl">;,ИмяПользователя,Пароль);
23 Radion
 
08.02.16
12:38
Не пойму, то ли я что то делаю неправильно, то ли веб сервис просто не пашет? Как определить рабочий ли тестовый веб сервис? Проверял через SOAPUI такая же байда, ошибка:
Mon Feb 08 13:32:44 MSK 2016:INFO:Error getting response for [messagesServicePortTypeSoap12.addrcardMsg:Request 1]; org.apache.http.client.ClientProtocolException
Написал следующее:
MyEmail= "rabanik@mail.ru";
BarCode= "JJEEKLIENT00000000001";
//URL   = "https://testeservice.post.ee/epmx/services/messagesService";;
    URL   = "testeservice.post.ee/epmx/services/messagesService";
    Парам = СокрЛП("    
    |<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope""; xmlns:xsd=""http://service.core.epmx.application.eestipost.ee/xsd"">;
    |   <soap:Header/>
    |   <soap:Body>
    |      <xsd:addrcardMsgRequest>
    |         <partner>"+Login+"</partner>
    |         <sendAddressCardTo>email</sendAddressCardTo>
    |         <cardReceiverEmail>"+MyEmail+"</cardReceiverEmail>
    |         <barcodes>"+BarCode+"</barcodes>
    |         <!--Optional:-->
    |         <format>pdf</format>
    |      </xsd:addrcardMsgRequest>
    |   </soap:Body>
    |</soap:Envelope>    
    |");
    
    ssl = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать),
    Новый СертификатыУдостоверяющихЦентровWindows());
        
    // подготовим файл с данными для отправки
    имяФайлаОтправки = ПолучитьимяВременногоФайла("xml");
    
    ОбъектXML = Новый ЗаписьXML;
    ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8");
    ОбъектXML.ЗаписатьОбъявлениеXML();
    ОбъектXML.ЗаписатьБезОбработки(Парам);
    ОбъектXML.Закрыть();
    ФайлОтправки = Новый Файл(имяФайлаОтправки);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
    Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);    
    
    имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML
    //Соединение = Новый HTTPСоединение("217.159.234.93:8080/epmx/services/messagesService.wsdl",8080,Login,Password,,Ложь);
    //Соединение = Новый HTTPСоединение("testeservice.post.ee/epmx/services/messagesService.wsdl",8080,Login,Password,,Ложь);
    //Соединение = Новый HTTPСоединение("https://testeservice.post.ee:8080/epmx/services/messagesService.wsdl",,"7101472","fxm9Wk2h",,,ssl);    
    Попытка
        Соединение = Новый HTTPСоединение("testeservice.post.ee:8080/epmx/services/messagesService.wsdl",,"7101472","fxm9Wk2h",,,ssl);
    Исключение
        Сообщить("Не удалось установить соединение с сервером онлайн-проверки:"
        + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);
        Возврат;
    КонецПопытки;    
    Соединение.ОтправитьДляОбработки(имяФайлаОтправки,URL,имяВыходногоФайла,"");
Получаю ошибку:
{Форма.Форма(171)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)
    Соединение.ОтправитьДляОбработки(имяФайлаОтправки,URL,имяВыходногоФайла,"");
по причине:
Ошибка работы с Интернет:   Не могу установить соединение
24 Radion
 
08.02.16
12:44
(22)
Login: 7101472
Password: fxm9Wk2h
ОпределениеТ = Новый WSОпределения("https://testeservice.post.ee/epmx/services/messagesService.wsdl",Login,Password);
по причине:
При создании описания сервиса произошла ошибка. URL сервиса: https://testeservice.post.ee/epmx/services/messagesService.wsdl
по причине:
Ошибка работы с Интернет:   Удаленный узел не прошел проверку
25 Serginio1
 
08.02.16
14:02
(24) Добавь в
Новый WSОпределения(<МестоположениеWSDL>, <ИмяПользователя>, <Пароль>, <ИнтернетПрокси>, <Таймаут>, <ЗащищенноеСоединение>)

Или сохрани через браузер
ОпределениеТ=Новый WSОпределения(Путь_К_wsdl);
   WSСервис=ОпределениеТ.Сервисы[0];
    ПроксиWS=Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя,,,Новый ЗащищенноеСоединениеOpenSSL());
26 Serginio1
 
08.02.16
14:07
Через WS захожу. Если будешь пользоваться выложу DLL и пример подключения.
27 Serginio1
 
08.02.16
14:08
28 Serginio1
 
08.02.16
14:50
Так работает
ОпределениеТ=Новый WSОпределения("https://testeservice.post.ee/epmx/services/messagesService.wsdl",Login,Password,,,Новый ЗащищенноеСоединениеOpenSSL());
   WSСервис=ОпределениеТ.Сервисы[0];

    ПроксиWS=Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя,,,Новый ЗащищенноеСоединениеOpenSSL());
29 Radion
 
10.02.16
13:18
А как проверить, что предоставили доступный веб сервис? У сомнение что доступ дан. Потому как проверить/тестировать через SOAPUI не получается, сервис выдает ошибку:
Wed Feb 10 14:14:26 MSK 2016:DEBUG:Connection closed
Wed Feb 10 14:14:26 MSK 2016:DEBUG:Connection shut down
30 Serginio1
 
10.02.16
14:50
(29) Ты 28 проверял. Правда нужно еще добавить для вызова методов
проксиWS.Пароль=Password;
проксиWS.Пользователь=Login;
31 Radion
 
11.02.16
11:51
(30) Сергей, мне наконец то удалось отправить запрос и получить ответ в SOAPUI. Нужно было выставить параметр Authorization: Basic NzEwMTQ3MjpmeG05V2syaA==
))
32 Serginio1
 
11.02.16
12:08
А зачем тебе SOAPUI? Используй WSПрокси
33 Serginio1
 
11.02.16
12:10
Используй Фиддлер. Если бы использовал 28+30 то там как раз и есть WSПрокси