Интеграция с веб сервисом

1. rabanik 2 17.02.16 11:25 Сейчас в теме
Добрый день, делаю интеграцию с веб сервисом, в SOAPUI код запроса выглядит так:
POST http://217.159.234.93:8080/epmx/services/messagesService.wsdl HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Authorization: Basic NzEwMTQ3MjpmeG05V2syaA==
Content-Length: 1025
Host: 217.159.234.93:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
.... далее код запроса
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://service.core.epmx.application.eestipost.ee/xsd">
все хорошо отрабатывает получаю файл ответа.
Но когда пытаюсь оформить в 1С, не получается.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ant1773 6 17.02.16 14:22 Сейчас в теме
(1) rabanik,

Что именно не получается? Покажите код.
4. Serginio 942 17.02.16 17:42 Сейчас в теме
У тебя кстати и http. Используй WSПрокси
5. rabanik 2 18.02.16 11:47 Сейчас в теме
Вот мой код полностью:
 URL  = "testeservice.post.ee/epmx/services/messagesService";
	WSDL = "http://217.159.234.93:8080/epmx/services/messagesService.wsdl";
		
	UserName= "7101472";
	Password= "fxm9Wk2h";
	
	MyEmail= "rabanik@mail.ru";
	BarCode= "JJEEKLIENT00000000001";
	Парам = СокрЛП("	
    |<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsd=""http://service.core.epmx.application.eestipost.ee/xsd"">
	|<soapenv:Header/>
	|<soapenv:Body>
	|<xsd:businessToClientMsgRequest>
	|<partner>7101472</partner>
	|<interchange msg_type=""elsinfov1"">
	|<header file_id=""12345"" sender_cd=""7101472"" />
	|<item_list>
	|<item service=""PA"">
	| <add_service>
	|<option code=""ST""/>
	|<option code=""SF""/>
	| </add_service>     
	|<measures weight=""1"" length=""0"" width=""0"" height=""0"" />
	|<comment>Comment</comment>
	|<receiverAddressee>
	|<person_name>Receiver name</person_name>
	|<mobile>66666666</mobile>
	|<email>test@ytest.com</email>
	|<address country=""LT"" offloadPostcode=""88831""/>
	|</receiverAddressee>
	|<returnAddressee>
	|<person_name>Sender name</person_name>
	|<phone>56123456</phone>
	||<email>test@test.lv</email>
	|<address postcode="" 02244"" deliverypoint=""Vilnius"" country=""LT"" street="" Kirtimш 47- 210""></address>
	|</returnAddressee>
	|</item>
	|</item_list>
	|</interchange>
	|</xsd:businessToClientMsgRequest>
	|</soapenv:Body>
	|</soapenv:Envelope>	
	|");	
	
	ssl = Новый ЗащищенноеСоединениеOpenSSL(
	Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать),
	Новый СертификатыУдостоверяющихЦентровWindows());
	
	// сервер использует защищенное соединение (https),
	// для подключения к серверу используется прокси
	ПроксиСервер = Новый интернетПрокси;
	ПроксиСервер.Пользователь = UserName;
	ПроксиСервер.Пароль       = Password;
	
	Соединение = Новый HTTPСоединение(WSDL,,UserName,Password,ПроксиСервер,,ssl);
	//Соединение = Новый HTTPСоединение(WSDL,,UserName,Password,,,ssl);
		
	//POST
	// подготовим файл с данными для отправки
	имяФайлаОтправки = ПолучитьимяВременногоФайла("xml");
	ОбъектXML = Новый ЗаписьXML;
	ОбъектXML.ОткрытьФайл(имяФайлаОтправки, "UTF-8");
	ОбъектXML.ЗаписатьОбъявлениеXML();
	ОбъектXML.ЗаписатьБезОбработки(Парам);
	ОбъектXML.Закрыть();
	ФайлОтправки = Новый Файл(имяФайлаОтправки);
	РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
	
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("POST http://217.159.234.93:8080/epmx/services/messagesService.wsdl HTTP/1.1");
	Заголовки.Вставить("Accept-Encoding:","gzip,deflate");
	Заголовки.Вставить("Content-Type:",   "text/html;charset=utf-8");
	Заголовки.Вставить("Authorization:",  "Basic NzEwMTQ3MjpmeG05V2syaA==");
	Заголовки.Вставить("SOAPAction:",     "");
	Заголовки.Вставить("Content-Lenght:", РазмерФайлаОтправки);
	Заголовки.Вставить("Host:",           "217.159.234.93:8080");
	Заголовки.Вставить("Connection:",     "Keep-Alive");
	Заголовки.Вставить("User-Agent:",     "Apache-HttpClient/4.1.1 (java 1.5)");
	имяВыходногоФайла = ПолучитьимяВременногоФайла("xml"); // наш сервер возвращает ответы в виде XML
	Соединение.ОтправитьДляОбработки(имяФайлаОтправки,URL,имяВыходногоФайла,Заголовки);
Показать
6. rabanik 2 18.02.16 11:49 Сейчас в теме
А вот код через прокси:
ОпределениеТ= Новый WSОпределения("https://testeservice.post.ee/epmx/services/messagesService.wsdl",UserName,Password,,,Новый ЗащищенноеСоединениеOpenSSL());
WSСервис    = ОпределениеТ.Сервисы[0]; 
	ПроксиСервер = Новый ИнтернетПрокси;
	ПроксиСервер.Пользователь = UserName;
	ПроксиСервер.Пароль       = Password;
	ПроксиWS    = Новый WSПрокси(ОпределениеТ, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя,ПроксиСервер,,Новый ЗащищенноеСоединениеOpenSSL());
	ПроксиWS.addrcardMsg(имяФайлаОтправки,// -- ???????);


Здесь проблема в том, что я не знаю какие параметры нужно отправлять методом "addrcardMsg" ???? ((((
8. Serginio 942 18.02.16 12:33 Сейчас в теме
(6) Загрузи в в конфигуратор WS ссылку и посмотри какой там тип. Подозреваю, что Base64
9. rabanik 2 18.02.16 13:51 Сейчас в теме
(8) Serginio, не подгружает, запрашивает пароль и логин, ввожу ничего не происходит (((
10. Serginio 942 18.02.16 17:17 Сейчас в теме
(9) В МЫ подгрузил. Логин пароль легко узнать через Authorization: Basic NzEwMTQ3MjpmeG05V2syaA==
там сложная структура при этом являющаяся полем
private string partner;

private AddressCardTo sendAddressCardTo;

private string cardReceiverEmail;

private string[] barcodes;

private ExportFormatType format;

private bool formatSpecified;
7. rabanik 2 18.02.16 11:51 Сейчас в теме
по отправке методом POST. выскакивает ошибка: Failure when receiving data from the peer
11. Serginio 942 18.02.16 18:00 Сейчас в теме
Или можешь через браузер сохранить в файл, в конфигураторе уже загрузить его
13. rabanik 2 19.02.16 16:40 Сейчас в теме
(11) Serginio,
ВебСервис = WSСсылки.WSСсылка_Omniva.СоздатьWSПрокси("http://service.core.epmx.application.eestipost.ee/xsd","messagesService","messagesServicePortTypeSoap12");
ОтветВебСервиса= ВебСервис.businessToClientMsg(имяФайлаОтправки);
Теперь система выдает ошибку: ОтветВебСервиса= ВебСервис.businessToClientMsg(имяФайлаОтправки); по причине: Несоответствие типов (параметр номер '1')
12. rabanik 2 18.02.16 19:43 Сейчас в теме
Да, Сергей, получилось. Завтра посмотрю (забыл что веб страницу wsdl можно сохранить, делал когда то) Спасибо.
14. Serginio 942 19.02.16 17:06 Сейчас в теме
Да накрутили они. Там в итоге массив со объектом содержащий поля
string start;
string finishField;
15. Dimitrij 27.06.16 16:17 Сейчас в теме
Господа, что в итоге получилось?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот