|
soap:Header | ☑ | ||
---|---|---|---|---|
0
Pandoch
31.10.13
✎
15:14
|
Пытаюсь организовать взаимодействие с веб-сервисом с помощью описанного wdsl файла. Использую WSПрокси. При попытке вызова операции происходит обращение к сервису и возвращается оттуда ошибка:
Security header missing Вот код: Определение = Новый WSОпределения("file:///C:/Users/AUBashinskaya/Desktop/TLConnect.svc", "логин", "пароль"); Сервис = Определение.Сервисы[0]; Прокси = Новый WSПрокси( Определение, "https://www.travelline.ru/Api/TLConnect", "TLConnectService", "BasicHttpBinding_ITLConnectService" ); Прокси.Пароль = "пароль"; Прокси.Пользователь = "логин"; //формирование объекта-параметра операции Результат = Прокси.HotelAvailRQ(Объект); Объект формируется верно. Вот описание сервиса: https://www.travelline.ru/Api/TLConnect.svc?singleWsdl Там указано следущее: <wsdl:operation name="HotelAvailRQ"> <soap:operation soapAction="https://www.travelline.ru/Api/TLConnect/HotelAvailRQ" style="document"/> <wsdl:input name="HotelAvailRQRequest"> <soap:header message="tns:HotelAvailRQRequest_Headers" part="Security" use="literal"/> <soap:body use="literal"/> </wsdl:input> И: <wsdl:message name="HotelAvailRQRequest"> <wsdl:part name="OTA_HotelAvailRQ" element="q3:OTA_HotelAvailRQ"/></wsdl:message> <wsdl:message name="HotelAvailRQRequest_Headers"><wsdl:part name="Security" element="tns:Security"/> </wsdl:message> Я так понимаю сообщение HotelAvailRQRequest я отправила с параметром OTA_HotelAvailRQ (мой аргемент - Объект - именно такого типа). Но как через WSПрокси задать параметр Security? Я так понимаю не заполняется часть Header в soap запросе. |
|||
1
Serginio1
31.10.13
✎
15:40
|
||||
2
Serginio1
31.10.13
✎
15:44
|
Кстати а у них есть примеры на других языках?
|
|||
3
Pandoch
31.10.13
✎
16:23
|
Какие примеры? Я не нашла ответа там на свой вопрос, можно ли обратиться к части Header SOAP запроса через WSПрокси? Или надо другие объекты использовать. я пробовала с помощью Msxml2.SERVERXMLHTTP отправить - тоже не вышло, чтото ему content-type не нравится
|
|||
4
Serginio1
31.10.13
✎
16:30
|
А 1 смотрела?
xmlHttp.setRequestHeader ("Content-type", "application/soap+xml; charset=""utf-8"""); Так они никаких примеров не предоставляют? |
|||
5
Serginio1
31.10.13
✎
16:31
|
Ты уже столько времени на него убила. Проще сделать как я тебе уже советовал.
v8: Подключение к Web-сервису стороннего разработчика (не 1С) |
|||
6
Pandoch
31.10.13
✎
16:34
|
xmlHttp.setRequestHeader ("Content-type", "application/soap+xml; charset=""utf-8"""); - устанавливала так, не вышло все равно.
|
|||
7
Pandoch
31.10.13
✎
16:38
|
примеры есть - просто какие soap запросы должны быть, мне это ничего не дает, текст запроса у меня верно формируется
|
|||
8
Pandoch
31.10.13
✎
16:38
|
ну точнее часть Body, а вот Header видимо нет, раз такая ошибка
|
|||
9
Pandoch
31.10.13
✎
16:39
|
там примеры только по части body
|
|||
10
Pandoch
31.10.13
✎
16:41
|
Писать там на C# надо будет? тут даже студии нет блин
|
|||
11
Infsams654
31.10.13
✎
16:42
|
(9) текст soаp- а покажите, пжлста_
|
|||
12
Pandoch
31.10.13
✎
16:43
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header> <wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasisopen. org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>USERNAME</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-usernametoken- profile-1.0#PasswordText">SECRET</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soap:Header> <soap:Body> <OTA_ReadRQ xmlns="http://www.opentravel.org/OTA/2003/05" Version="1.0"> <ReadRequests> <HotelReadRequest HotelCode="HOTEL1"> <SelectionCriteria SelectionType="Undelivered"/> </HotelReadRequest> </ReadRequests> </OTA_ReadRQ> </soap:Body> </soap:Envelope> |
|||
13
Pandoch
31.10.13
✎
16:44
|
Вот тут в Header я так понимаю объект тоже добавляется типа Security, но как добраться до Header'a через прокси я хз
|
|||
14
Infsams654
31.10.13
✎
16:53
|
(13) а похоже, что никак. Там же он в другом наймспайсе, а прокси создается только для своего xmlns.
Так, что (см. еще v8: Как правильно добавить цифровой сертификат SLL при соединении через web-сервис?) прямые вызовы методов тут не прокатят, т.к. нужна еще в при каждом вызове авторизация через oasis. По http, если, то все можно заставить работать |
|||
15
Serginio1
31.10.13
✎
16:53
|
На C# там как раз и добавляется новый параметр.
v8: Использование WSПрокси |
|||
16
Serginio1
31.10.13
✎
16:55
|
(14) У неё нет подписи сообщений. как v8: Подключение к Web-сервису стороннего разработчика (не 1С)
|
|||
17
Infsams654
31.10.13
✎
16:57
|
(15) и на дельфях, тоже можно. Но, какого 1с-ника, теперь этому заставишь
(16) при чем тут подпись? дело в принципе |
|||
18
Pandoch
31.10.13
✎
16:59
|
(17) я 1с занимаюсь по воле судьбы. Изучала так то java и c#
|
|||
19
Pandoch
31.10.13
✎
17:00
|
я вобще стажер-4курсник. ну попробую предожить-написать это дело на шарпе, но до этого еще через http попробую покопаться
|
|||
20
Serginio1
31.10.13
✎
17:02
|
(17) На шарпе тебе не нужно описывать все структуры.
А вот на Delphi тебе нужно самому будет реализовывать классы с поддержкой IDispatsh. Если конечно Delphi нативный. |
|||
21
Infsams654
31.10.13
✎
17:03
|
(18) короче:
в header формируешь строку xml и в body тоже. Собираешь все в строку envelope и посылаешь post-м по http |
|||
22
Pandoch
31.10.13
✎
17:05
|
(21)
obj = Новый COMОбъект("Msxml2.SERVERXMLHTTP"); obj.open ("POST", "http://www.travelline.ru/Api/TLConnect.svc",0); Текст = "<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/""><soap:Header><wsse:Security soap:mustUnderstand=""1"" xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd""><wsse:UsernameToken><wsse:Username>" + "ЛОГИН" +" </wsse:Username><wsse:Password Type=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-usernametoken-profile-1.0#PasswordText"">" + "ПАРОЛЬ" + "</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body>"; Текст = Текст + ДанныеXML + "</soap:Body></soap:Envelope>"; obj.setRequestHeader("Content-type", "text/xml"); obj.send (Текст); |
|||
23
Pandoch
31.10.13
✎
17:06
|
возможно я не тот COM-объект использую.. но он короче ошибку такую дает: Cannot process the message because the content type 'text/plain; Charset=UTF-8' was not the expected type 'text/xml; charset=utf-8'.
|
|||
24
Pandoch
31.10.13
✎
17:06
|
ДанныеXML - это XML который должен быть внутри боди, создан верно
|
|||
25
Pandoch
31.10.13
✎
17:07
|
Может я еще URL не тот прописываю при создании объекта, я прописала тот, который указа в wsdl в location
|
|||
26
Serginio1
31.10.13
✎
17:07
|
(18) Там тебе писать по минимуму
Заходишь в Вижуал студию,Создаешь библиотеку, добавляешь ссылку на службу Добавляешь класс который возвращает объект соединения обернутый в AutoWrap [ComVisible(true)] [ProgId("ИмяТвоегоПрогИД")] [ClassInterface(ClassInterfaceType.AutoDispatch)] [Guid("Создаешь свой ГУИД")] public class ИмяТвоегоКласс// { public object Подключиться() { return new AutoWrap(new new ServiceReference2.TLConnectServiceClient()); } А с этим объектом работаешь из 1С как с COM объектом |
|||
27
Pandoch
31.10.13
✎
17:09
|
(26) - да, я это читала уже, спасибо. Дело в том, что к студии я в крайнем случае буду обращаться, если с http не выйдет, т.к. ее тут нет вобще на компе
|
|||
28
Infsams654
31.10.13
✎
17:11
|
(25) во обще-то сейчас с 8.2.18 есть в 1С HTTPЗапрос, так что можно не использовать сом (COMОбъект("Msxml2.SERVERXMLHTTP").
Хотя, там и есть причуды. |
|||
29
Serginio1
31.10.13
✎
17:12
|
Ну вызов из 1С
сервер=Новый COMОбъект(ИмяТвоегоПрогИДТовоегоКласса); объект=Новый COMОбъект("NetObjectToIDispatch"); парам1 = объект.CreateObject("ServiceReference2.SecurityHeaderType",""); парам1.Password = пароль; парам1.Username = Юзер; итд. Все просто до безобразия |
|||
30
Serginio1
31.10.13
✎
17:14
|
Ну и вызов res = serv.HotelAvailRQ(парам1,парам);
|
|||
31
Serginio1
31.10.13
✎
17:18
|
(27)Так скачай экспресс. И используй.
|
|||
32
Pandoch
31.10.13
✎
17:24
|
(31) начальник посмеялся на предложение сделать внешнюю компоненту и сказал выбросить эти глупости из головы.
|
|||
33
Pandoch
31.10.13
✎
17:24
|
буду бодаться с http
|
|||
34
Infsams654
31.10.13
✎
17:25
|
(31) вот заладил. использование com не есть правильно. Все должно работать платформнонезависимо.
|
|||
35
Serginio1
31.10.13
✎
17:29
|
(34) Хоть через одно место? Ну это выбор каждого индивидуума.
(32) Это не ВК. Это обычный ком. Желаю удачи. |
|||
36
Infsams654
31.10.13
✎
17:36
|
(35) ничего не имею против в конкретном случае. Но когда требуется что-то, что должно работать, например, из рег. задания на сервере под линухом, то, сам понимаешь
|
|||
37
Serginio1
31.10.13
✎
17:45
|
(36) Это уже беда тех кто себе этот линукс выбрал. Скупой платит дважды. Возможности 1С весьма и весьма ограничены. Я сам по большому счету стараюсь не использовать COM. Но во многих вещах просто нет возможности.
Но вполне можно использовать Net для таких целей v8: Вопрос по NetObjectToIDispatch |
|||
38
Infsams654
31.10.13
✎
18:03
|
(37) это не беда тех, это твоя беда, когда создаешь тиражируемое решение. Ну, конечно, от конкретной ситуации зависит. "Возможности 1С весьма и весьма ограничены" - полностью согласен
|
|||
39
Serginio1
31.10.13
✎
18:05
|
(38) Я не создаю тиражируемое приложение. Посмотри исходники. Ты меня с кем то спутал.
|
|||
40
Serginio1
31.10.13
✎
18:07
|
(38) Мало того, мне сейчас на семерке нужно и с вэб сервисами и XML по схеме работать. Проще всего работать через нетовский враппер.
|
|||
41
oleg_km
31.10.13
✎
18:22
|
(40) Зачем человека с пути истинного сбивашь, ну хочется ему кактусов, ну на здоровье
|
|||
42
Pandoch
31.10.13
✎
18:24
|
ребят, вы отклонились от темы слегка в сферу выяснения проф.отношений)
|
|||
43
oleg_km
31.10.13
✎
18:29
|
(42) Ты сама определись, хочешь ручками собирать СОАП сообщения - пожалуйста. Я тоже так делал для банк-клиента. Умеешь шарп - пробуй то что предлагает Serginio1.
(32) начальник пусть посмеется, когда вы убьете месяц на написание СОАПом в 1С, да помучаетесь с https на HTTPСоединение, а потом 1С в очередном релизе что-нибудь сломает в HTTPСоединение, как это у меня было два раза уже. И я уже три года дружу с WinHTTP. Сейчас переписал на .NET |
|||
44
Serginio1
31.10.13
✎
18:33
|
(42) Ну ты для начала почитай про протокол http://www.ishodniki.ru/art/art_progr/net/661.html
|
|||
45
Pandoch
31.10.13
✎
18:42
|
ок, прочитаю. Можно попробовать реализовать на шарпе. Завтра поставлю на скачку студию.
|
|||
46
Serginio1
31.10.13
✎
18:42
|
(41) Тут уж предлагают статью написать. v8: Разная скорость работы с COM объектом
У тебя опыта больше. Может напишешь? |
|||
47
Pandoch
31.10.13
✎
18:43
|
не подскажете кстати, где можно беспроблемно скачать? помню на первых курсах долго парилась, пока норм скачала установочник
|
|||
48
Serginio1
31.10.13
✎
18:45
|
(45) тебе нужно что такого
var serv = new ServiceReference2.TLConnectServiceClient(); var парам = new ServiceReference2.OTA_HotelAvailRQ(); парам.AvailRequestSegements = new ServiceReference2.AvailRequestSegmentType[1]; парам.AvailRequestSegements[0] = new ServiceReference2.AvailRequestSegmentType(); парам.AvailRequestSegements[0].AvailReqType = ServiceReference2.AvailRequestSegmentTypeAvailReqType.Room; парам.AvailRequestSegements[0].HotelSearchCriteria = new ServiceReference2.AvailRequestSegmentTypeHotelSearchCriteriaTypeCriterionType[1]; // парам.AvailRequestSegements[0].HotelSearchCriteria[0].ExactMatch = true; var username = serv.ClientCredentials.UserName; username.Password = Пароль; username.UserName = Юхер; var парам1 = new ServiceReference2.SecurityHeaderType(); парам1.Password = ПарольДляХедера; парам1.Username = ЮзерДляХедера; var res = serv.HotelAvailRQ(парам1,парам); что типа такого. (47) На торрентах все есть. |
|||
49
Serginio1
31.10.13
✎
18:48
|
(47) Я когда на Шарп перехожу, сразу удовольствие от кодирования получаю.
Достал этот 1С уже. Как 7ка так и 8 ка. |
|||
50
oleg_km
31.10.13
✎
19:06
|
(46) Какого опыта? Я твою обработку пользую, как обезьяна гранату. Ничего не понимаю, главное работает. А так просто портирую код из шарпа в 1С. Типа:
Обработка ВебКлиент Перем Плагин; Перем Протокол Экспорт; Перем Хост Экспорт; Перем Порт Экспорт; Перем Прокси Экспорт; Перем Куки Экспорт; Перем ЗаголовокЗапроса Экспорт; Перем ЗаголовокЗапросаДополнительный Экспорт; Перем КодировкаЗапроса Экспорт; Перем КодировкаОтвета Экспорт; Перем обЗапрос Экспорт; Перем обОтвет Экспорт; Перем обКуки Экспорт; Процедура Инициализировать() Плагин = БиблАП.ПолучитьNET(); Протокол = "http"; Хост = ""; Порт = 0; Прокси = Неопределено; Куки = Истина; ЗаголовокЗапроса = Новый Структура("Accept, Connection, ContentLength, ContentType, Date, KeepAlive, Referer, TransferEncoding, UserAgent", "*/*", Неопределено, 0, "application/x-www-form-urlencoded", Неопределено, Истина, Неопределено, Неопределено, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1); 1C.Agp"); ЗаголовокЗапросаДополнительный = Новый Соответствие; КодировкаЗапроса = Неопределено; КодировкаОтвета = Неопределено; обЗапрос = Неопределено; обОтвет = Неопределено; обКуки = Неопределено; КонецПроцедуры Процедура УстановитьПроксиПоУмолчанию() Экспорт Прокси = ПолучитьОбщуюНастройку("ПРИКЛАДНЫЕ\АДМИНИСТРИРОВАНИЕИКС\ПРОКСИ"); КонецПроцедуры /////////////////////////////////////////////////// // Соединение Функция СформироватьУРЛ() Возврат Протокол + "://" + Хост + ?(Порт = 0, "", ":" + БиблАП.Число2Стр(Порт)) + "/"; КонецФункции /////////////////////////////////////////////////// // Отправить запрос Процедура ОтправитьЗапрос(Ресурс = "", Метод = Неопределено) Экспорт обЗапрос = Плагин.GetType("System.Net.WebRequest", "System").Create(СформироватьУРЛ() + Ресурс); Если Прокси <> Неопределено Тогда обЗапрос.Proxy = Плагин.СоздатьОбъект(Плагин.ПолучитьТип("System.Net.WebProxy", "System"), БиблАП.СтрСлева(Прокси, ":"), Число(БиблАП.СтрСправа(Прокси, ":"))); обЗапрос.Proxy.UseDefaultCredentials = Истина; КонецЕсли; Если Куки Тогда Если обКуки = Неопределено Тогда обКуки = Плагин.СоздатьОбъект(Плагин.ПолучитьТип("System.Net.CookieContainer", "System")); КонецЕсли; обЗапрос.CookieContainer = обКуки; КонецЕсли; ЗаполнитьЗначенияСвойств(обЗапрос, ЗаголовокЗапроса); Для каждого текКлюч Из ЗаголовокЗапросаДополнительный Цикл обЗапрос.Headers.Add(текКлюч.Ключ, текКлюч.Значение); КонецЦикла; обЗапрос.ServicePoint.Expect100Continue = Ложь; Если Метод <> Неопределено Тогда обЗапрос.Method = Метод; КонецЕсли; КонецПроцедуры Процедура ОтправитьЗапросИзСтроки(Ресурс = "", Данные = "") Экспорт ОтправитьЗапрос(Ресурс); обЗапрос.Method = "POST"; текКодировка = ?(КодировкаЗапроса = Неопределено, Плагин.ПолучитьКодировку(), Плагин.ПолучитьКодировку(КодировкаЗапроса)); мсБуфер = текКодировка.GetBytes(Данные); обЗапрос.ContentLength = мсБуфер.Length; обПоток = обЗапрос.GetRequestStream(); обПоток.Write(мсБуфер, 0, мсБуфер.Length); обПоток.Close(); КонецПроцедуры Процедура ОтправитьЗапросИзФайла(Ресурс = "", ИмяФайла) Экспорт ОтправитьЗапрос(Ресурс); обЗапрос.Method = "POST"; обФайл = Плагин.СоздатьОбъект(Плагин.ПолучитьТип("System.IO.FileStream"), ИмяФайла, Плагин.ПолучитьТип("System.IO.FileMode").Open, Плагин.ПолучитьТип("System.IO.FileAccess").Read, Плагин.ПолучитьТип("System.IO.FileShare").ReadWrite); обЗапрос.ContentLength = обФайл.Length; обПоток = обЗапрос.GetRequestStream(); Плагин.СкопироватьПоток(обФайл, обПоток); обФайл.Close(); обПоток.Close(); КонецПроцедуры /////////////////////////////////////////////////// // Получить ответ Функция ПолучитьОтвет() Экспорт обОтвет = обЗапрос.GetResponse(); Если Куки Тогда обКуки.Add(обОтвет.Cookies); КонецЕсли; Возврат обОтвет; КонецФункции Функция ПолучитьОтветВСтроку() Экспорт ПолучитьОтвет(); текКодировка = ?(КодировкаОтвета = Неопределено, обОтвет.CharacterSet, КодировкаОтвета); обПоток = Плагин.СоздатьОбъект(Плагин.ПолучитьТип("System.IO.StreamReader"), обОтвет.GetResponseStream(), Плагин.ПолучитьКодировку(текКодировка)); стрРез = обПоток.ReadToEnd(); Возврат стрРез; КонецФункции Функция ПолучитьОтветВФайл(ИмяФайла) Экспорт ПолучитьОтвет(); обОтвет = обЗапрос.GetResponse(); Если Куки Тогда обКуки.Add(обОтвет.Cookies); КонецЕсли; обПоток = обОтвет.GetResponseStream(); обФайл = Плагин.СоздатьОбъект(Плагин.ПолучитьТип("System.IO.FileStream"), ИмяФайла, Плагин.ПолучитьТип("System.IO.FileMode").Create, Плагин.ПолучитьТип("System.IO.FileAccess").Write); Плагин.СкопироватьПоток(обПоток, обФайл); обФайл.Close(); обПоток.Close(); Возврат Истина; КонецФункции Функция ПолучитьЗаголовкиОтвета() Экспорт Рез = Новый Соответствие; Для ии = 0 По обОтвет.Headers.Count - 1 Цикл Рез.Вставить(обОтвет.Headers.Keys.Get(ии), обОтвет.Headers.Get(ии)); КонецЦикла; Возврат Рез; КонецФункции Инициализировать(); (49) Если честно - аналогично. Сейчас дочери помогаю с домашними работами на VS, демаю ребенок пусть занимается чем-нибудь серьезным |
|||
51
oleg_km
31.10.13
✎
19:49
|
(47) Я качал вроде с самого майкрософта, а ключик где-то потом взял.
|
|||
52
Serginio1
01.11.13
✎
10:37
|
(50) Ну вот не было у меня создать объект
public object СоздатьОбъект(object Тип,params object[] параметры) { return new AutoWrap(System.Activator.CreateInstance(Type.GetType(type), параметры)); } А ты добавил, как и обращение к типам итд. |
|||
53
oleg_km
01.11.13
✎
11:34
|
(53) Так Плагин - это обработка 1С, 1С'ная обертка уде шарповской обертки. Просто мне организационно удобнее менять код только в 1С. Если изменять сам COM на шарпе, то потом его нужно копировать и устанавливать на 100 компьютеров пользователей. Даже если это сделать через ГП, то все равно пользователи должны перезапустить ПК и пр. Но и это небольшая беда. Этот КОМ используется и на сервере, а это значит нужно еще и перезапускать сервер. Поэтому из твоего КОМ на шарпе я ставил только сам враппер и GetType. А СоздатьОбъект это уже реализовано на стороне 1С: получаю статический Activator и пошел клепать из него объекты.
Статейку я думал тиснуть, но: - во-первых, есть ощущение, что кроме нас с тобой это никому не интересно и даже не понятно зачем это нужно; - во-вторых, есть же более "продвинутый" проект Elisy, в котором все это с избытком, как я понимаю покрыто. Я даже в какой-то момент думал приобресть и не париться, да уже как-то привык к своему. Если интересно могу выслать что получилось. |
|||
54
Serginio1
01.11.13
✎
13:45
|
(53) Ну вариант через Reflect проще и его можно использовать из любого сом объекта.
53 Буду благодарен. Просто сейчас как раз нужно делать обмен с Edi Soft адрес EDI: Exite или Comarch+EDI |
|||
55
Serginio1
01.11.13
✎
13:51
|
Я еще добавил у себя
public object ТипКакОбъект(object Тип) { if (Тип is AutoWrap) Тип = ((AutoWrap)Тип).T; Type T = ((Type)Тип); return new AutoWrap(T, T.GetType()); } что бы добраться до объектных методов типа. А так все остальное можно решать через шарповской обертки |
|||
56
Serginio1
01.11.13
✎
13:56
|
(0) Кстати у них не совсем правильное описание
wsse:Security soap:mustUnderstand="1" xmlns:wsse="http://docs.oasisopen. org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>USERNAME</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-usernametoken- profile-1.0#PasswordText">SECRET</wsse:Password> </wsse:UsernameToken> </wsse:Security> само описание -<xs:schema targetNamespace="https://www.travelline.ru/Api/TLConnect" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"><xs:element name="Security" type="tns:SecurityHeaderType"/>-<xs:complexType name="SecurityHeaderType"><xs:attribute name="Username" type="xs:string"/><xs:attribute name="Password" type="xs:string"/></xs:complexType></xs:schema></wsdl:types> нет никакого UsernameToken и другое пространство имен. |
|||
57
oleg_km
01.11.13
✎
14:31
|
(54) Попробую на выходных собрать все в кучку
|
|||
58
Pandoch
01.11.13
✎
15:36
|
(57), (56) - ребята, мы пришли к консенсусу - они убрали спешл фор ас часть header, теперь обычным соапом отправляет - получает) спасибо за активное содействие)
|
|||
59
Serginio1
01.11.13
✎
15:48
|
Ну если соберешься на шарпе писать. То там можно и хедеры в конфигурационном файле прописать. Например
http://stackoverflow.com/questions/5836685/correct-way-communicate-wsse-usernametoken-for-soap-webservice |
|||
60
Pandoch
01.11.13
✎
15:55
|
(59) - спасибо за инфу, интересно так-то. На будущее запомню
|
|||
61
oleg_km
01.11.13
✎
20:14
|
(58) Обычный СОАП - это WSОпределение?
|
|||
62
Serginio1
05.11.13
✎
10:30
|
(57) Вообще 1С могли сами такой порт к Net сделать, чем самим городить свои функционал. Для линукса есть моно, ява.
Многие не пользуются потому, что это сторонняя библиотека. Если бы она была в составе дистрибутива и доступ к врапперу через механизм 1С то пользовались бы на прополую. Тем более, что одна и таже библиотека может работать как в 32 так и 64 разрядном приложениях. |
|||
63
Pandoch
06.11.13
✎
10:26
|
(61) - да
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |