Имя: Пароль:
1C
1С v8
Использование WSПрокси
0 Pandoch
 
30.10.13
15:55
Доброго времени суток! Создаю WSПрокси для  работы с веб-сервисом, описанным в wsdl-файле. Объект создается, создаются объекты описанны[ типов объектом ФабрикаXDTO, все заполняется. Написано в руководстве, что запрос должен отправляться в форме SOAP-запроса. Я так поняла WSПрокси сам создает структуру этого запроса, остается только передать созданный объект как параметр метода. Но почему-то при попытке вызова метода ошибка вылазит. Вот код:

Определение = Новый WSОпределения("file:///C:/Users/AUBashinskaya/Desktop/TLConnect.svc");
    Сервис = Определение.Сервисы[0];
    Прокси = Новый WSПрокси(
    Определение,
    "https://www.travelline.ru/Api/TLConnect";,
    "TLConnectService",
    "BasicHttpBinding_ITLConnectService"
    );
    Прокси.Пароль = "PERc0IDUfbPTolsiDglM";
    Прокси.Пользователь = "pms1cbit";
    Фабрика = Прокси.ФабрикаXDTO;
//далее создание нужной структуры объекта, заполнение данными
        ...
       ТипФ = Фабрика.Тип("http://www.opentravel.org/OTA/2003/05";,    "OTA_HotelAvailRQ");
    Объект = Фабрика.Создать(ТипФ);
    Объект.AvailRequestSegements = AvailRequestSegements;

        Прокси.HotelAvailRQ(Объект); //тут возникает ошибка


Текст ошибки:

{Обработка.БИТ_Отель_TravelLine.МодульОбъекта(96)}: Ошибка при вызове метода контекста (HotelAvailRQ)
    Прокси.HotelAvailRQ(Объект);
по причине:
Ошибка вызова операции сервиса:  {https://www.travelline.ru/Api/TLConnect}:TLConnectService:HotelAvailRQ()
по причине:
Неизвестная ошибка. Ошибка работы с Интернет:  Couldn't resolve host name
по причине:
Ошибка работы с Интернет:  Couldn't resolve host name


Может быть надо указывать какие-то еще параметры? wsdl:
https://www.travelline.ru/Api/TLConnect.svc?singleWsdl
1 Serginio1
 
30.10.13
16:51
Не любит 1с HTPS. Но еще и тут и защита сообщений
-<wsdl:operation name="HotelAvailRQ"><soap:operation style="document" soapAction="https://www.travelline.ru/Api/TLConnect/HotelAvailRQ"/>-<wsdl:input name="HotelAvailRQRequest"><soap:header use="literal" message="tns:HotelAvailRQRequest_Headers" part="Security"/><soap:body use="literal"/></wsdl:input>-<wsdl:output name="HotelAvailRQResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation>
2 Pandoch
 
30.10.13
17:07
Serginio1, не поняла, на что Вы указываете, мне нужно какие-то параметры доп. прописывать?
3 Serginio1
 
30.10.13
17:14
Нет. На вскидку у SOAP протокола есть защита транспорта и сообщений
v8: Подключение к Web-сервису стороннего разработчика (не 1С)
Что и как поддерживается 1С ХЗ. Могу проверить на C#
4 Pandoch
 
30.10.13
17:20
Буду очень признательна, если сможете получить какую-то полезную информацию
5 Serginio1
 
30.10.13
17:20
Кстати а что у тебя представляет AvailRequestSegmentType
6 Serginio1
 
30.10.13
17:21
Но вообще по Couldn't resolve host name  проблемы с подключение с требуемой безопасностью
7 Pandoch
 
30.10.13
17:24
В смысле что представляет? Ну элемент вложенной структуры.
8 Serginio1
 
30.10.13
17:29
Да еще первым параметром передается такая структура

public partial class SecurityHeaderType : object, System.ComponentModel.INotifyPropertyChanged {
        
        private string usernameField;
        
        private string passwordField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Username {
            get {
                return this.usernameField;
            }
            set {
                this.usernameField = value;
                this.RaisePropertyChanged("Username");
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Password {
            get {
                return this.passwordField;
            }
            set {
                this.passwordField = value;
                this.RaisePropertyChanged("Password");
            }
        }
9 Pandoch
 
30.10.13
17:33
Что с этим делать?
10 Serginio1
 
30.10.13
17:40
У меня что то возвращает на запрос,овыдает ошибку разбора XML. Но я не знаю, что из себя представляет AvailRequestSegmentType.
Написать порт на C#. Смотри v8: Подключение к Web-сервису стороннего разработчика (не 1С)