Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 05:55
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: web-сервис  (Прочитано 1798 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
web-сервис
« Первое сообщение: 01 Окт 2015, 10:57 »
Здравствуйте.
Пытаюсь наваять обращение к внешнему вэб сервису. Формирование запроса вроде как получилось. Возникает ошибка авторизации вида
"Ошибка SOAP сервера:  AuthorizationFailedException: Некорректная авторизация".
Из скудного описания поставщика сервиса есть следующие строки:
Цитировать
Для авторизации на веб-сервисах используется Basic HTTP Authorization. Логин и пароль передаются в стандартном http-заголовкеAuthorization в формате Basic<token>, где token закодированная в base64 строка <login>:<password>.
Код подключения к сервису:
Определения = Новый WSОпределения("https://partner-api.1c.ru/api/ws/subscription/v2?wsdl",СокрЛП(Объект.Логин),СокрЛП(Объект.Пароль));	
ПростанствоИмен="http://api.repository.onec.ru/v2";
Прокси = Новый WSПрокси(Определения, ПростанствоИмен, "PartnerSubscriptionApiServiceImplService", "PartnerSubscriptionApiServiceImplPort");
Насколько я понимаю неверные логин и пароль. При подключении через браузер логин и пароль принимаются. Через сервис - не проходит.
Спасибо за любую помощь.


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: web-сервис
« Ответ #1: 01 Окт 2015, 11:04 »
Поговорю, пожалуй сам с собой.
Вопрос решен.
Для WSПрокси нужно тоже задавать пользователя и пароль.

Оффлайн XGRAF

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-11-29
  • Сайт: 
  • Профессия: Программист 8.1
Re: web-сервис
« Ответ #2: 29 Ноя 2016, 18:43 »
Добрый день, вот и мне пришлось столкнуться с этим web-сервисом
мой код:
   Логин="логин";
   Пароль="пароль";
   Определения = Новый WSОпределения("api.1c.ru/api/ws/subscription/v2?wsdl" class="bbc_link" target="_blank">https://partner-api.1c.ru/api/ws/subscription/v2?wsdl",СокрЛП(Логин),СокрЛП(Пароль));   
    ПростанствоИмен="http://api.repository.onec.ru/v2";   
    Прокси = Новый WSПрокси(Определения, ПростанствоИмен, "PartnerSubscriptionApiServiceImplService", "PartnerSubscriptionApiServiceImplPort");   
   Прокси.Пользователь=логин;
   Прокси.Пароль=пароль;
   ВходныеПараметры = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип(ПростанствоИмен, "checkItsByRegNum"));
   ВходныеПараметры.regNumList = 1234567;
   Попытка
      Ответ      = Прокси.checkItsByRegNum(ВходныеПараметры);
   Исключение
      ИнформацияОбОшибке = ИнформацияОбОшибке();
   КонецПопытки;

_____________________
ОШИБКА в этой строке:    ВходныеПараметры.regNumList = 1234567;
ПИШЕТ:
Ошибка при установке значения атрибута контекста (regNumList)
   ВходныеПараметры.regNumList = 1234567;
по причине:
Несоответствие типов XDTO:
Тип '{http://api.repository.onec.ru/v2}regNumList' не найден
Значение не может быть установлено свойству, имеющему объектный тип

как правильно передать параметр, и не приведете ли пример правильного кода для решения этой задачи.

Оффлайн stupnikov

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-05-13
  • Сайт: 
  • Профессия: Программист 1С
Re: web-сервис
« Ответ #3: 13 Май 2017, 21:53 »
   Пример кода с передачей параметра:

   WSОпределение = Новый WSОпределения("https://partner-api.1c.ru/api/ws/industry?wsdl");     
   
   Сервис = WSОпределение.Сервисы[0];     
   Прокси = Новый WSПрокси(WSОпределение, Сервис.URIПространстваИмен, Сервис.Имя, Сервис.ТочкиПодключения[0].Имя);   
   Прокси.Пользователь = "****";
   Прокси.Пароль = "****";

   // Здесь и есть главный секрет

   ЧислоТип = Прокси.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "long");
   значение = Прокси.ФабрикаXDTO.Создать(числоТип, 1234567);

   ТипregNumList = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип(Сервис.URIПространстваИмен, "regNumList"));
   ТипregNumList.regNumList.Добавить(значение);   
   
   Результат = Прокси.checkIndustryByRegNum(ТипregNumList);
   
   Сообщить(Результат);
   Вот только "Результат" - возвращается пустой,  как не смотрел прочитать ничего не смог

Оффлайн darys

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2017-09-01
  • Сайт: 
  • Профессия: Программист 8.1
Re: web-сервис
« Ответ #4: 01 Сен 2017, 14:17 »
Работает, если использовать HTTPСоединение:

   ТелоЗапроса = "<Envelope xmlns=""http://schemas.xmlsoap.org/soap/envelope/"">
   |<Body><checkItsByRegNum xmlns=""http://api.repository.onec.ru/v2""><regNumList xmlns=""""><regNumList>
   |777777</regNumList></regNumList></checkItsByRegNum></Body></Envelope>";
   HTTPСоединение = Новый HTTPСоединение("partner-api.1c.ru",, "user", "pas",,, Новый ЗащищенноеСоединениеOpenSSL() );
   HTTPЗапрос = Новый HTTPЗапрос("/api/ws/subscription/v2");
   HTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
   
   HTTPОтвет      = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
   
   КодСостояния   = HTTPОтвет.КодСостояния;
    ТекстОтвета    = HTTPОтвет.ПолучитьТелоКакСтроку();

В ТекстОтвета будет soap:Envelope который надо пропарсить.
Из чего можно сделать вывод, объект WSПрокси формирует что-то не то.
Подозрение на SOAPAction, который в данном случае остается пустым.
Добавлено: 01 Сен 2017, 14:30

А можно еще использовать библиотеку "1С:Библиотека интернет-поддержки пользователей", там есть функция ЗагрузитьСодержимоеИзИнтернет, которая скроет всю магию:

   ТелоЗапроса = "<Envelope xmlns=""http://schemas.xmlsoap.org/soap/envelope/"">
   |<Body><checkItsByRegNum xmlns=""http://api.repository.onec.ru/v2"">
   |<regNumList xmlns=""""><regNumList>7777777</regNumList>
   |</regNumList></checkItsByRegNum></Body></Envelope>";
   
   РезультатПолученияФайла = ИнтернетПоддержкаПользователейКлиентСервер.ЗагрузитьСодержимоеИзИнтернет( "https://partner-api.1c.ru/api/ws/subscription/v2", "user", "pas", Новый Структура("Метод, ФорматОтвета, ДанныеДляОбработки, ФорматДанныхДляОбработки","POST", 1, ТелоЗапроса, 1));


Последний раз редактировалось: darys; 01 Сен 2017, 14:30. Причина: Объединение сообщений


Теги: сервис SOAP 
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4290
Последний ответ 24 Дек 2015, 15:34
от дфтын
Модуль "сервис " на базе 1.С Предприятие 8.0

Автор Vlad-batiskafРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2468
Последний ответ 26 Ноя 2011, 02:58
от Dethmontt
Нужен совет в подключении к системе спутникового мониторинга "renault-trucks(Optifleet)", через web-сервис!

Автор snoop82Раздел Беседка

Ответов: 0
Просмотров: 788
Последний ответ 11 Дек 2015, 06:56
от snoop82
Уважаемые коллеги! Помогите найти брошюру: "ИТС. Памятка сервис инженера"

Автор MixmaisterРаздел Закрытые темы

Ответов: 0
Просмотров: 3068
Последний ответ 09 Янв 2012, 20:36
от Mixmaister
Появился сервис по онлайн проверке корректности заполнения счет-фактур

Автор newsРаздел Новости

Ответов: 0
Просмотров: 1263
Последний ответ 13 Авг 2014, 12:52
от news

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
167 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 215
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal