Автор: Inkognito 03.08.21, 9:56
УТП. Необходимо авторизироваться и получить список входящих документов с начала года.
Проблема: непонятно как это корректно сделать.
Токен = "ЗдесьБылТокен";
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Authorization", "Token " + Токен);
ЗаголовокHTTP.Вставить("X-Vendor-ID", "1C");
ЗаголовокHTTP.Вставить("Accept", "application/xml");
текст = "https://vchasno.ua/api/v2/incoming-documents?date_created_from=20210101&date_created_to=20210701";
ЗапросHTTP = Новый HTTPЗапрос(текст, ЗаголовокHTTP);
//Ответ от сервера получим в возвращаемом значении типа HTTPОтвет
тмпОтвет = ПолучитьИмяВременногоФайла("txt");
НТТРВчасно = Новый HTTPСоединение("https://vchasno.ua"); //не факт!
ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);
Результат:
Ошибка при вызове метода контекста (Получить)
ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);
по причине:
Ошибка работы с Интернет: Couldn't resolve host name
Автор: Vofka 03.08.21, 10:28
Цитата(Inkognito @ 03.08.21, 10:56)
НТТРВчасно = Новый HTTPСоединение("https://vchasno.ua");
Тут должен быть только хост, в вашем случае
vchasno.ua и какой-то последующий параметр может сказать, что это именно http
S (по умолчанию это http).
Вот, кстати, есть какие-то примеры обработок https://pro1c.org.ua/redirect.php?https://integrations.vchasno.com.ua/#block512
Автор: Inkognito 03.08.21, 10:49
Работающий код (может кому пригодится), в качестве примера подключения и получения списка входящих документов:
ПримерТокен = "ЗдесьБылТокен";
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Authorization", "Token " + Токен);
ЗаголовокHTTP.Вставить("X-Vendor-ID", "1C");
ЗаголовокHTTP.Вставить("Accept", "application/xml");
текстЗапроса = "/api/v2/incoming-documents?date_created_from=20210101&date_created_to=20210701";
ЗапросHTTP = Новый HTTPЗапрос(текстЗапроса, ЗаголовокHTTP);
тмпОтвет = ПолучитьИмяВременногоФайла("txt");
Хост = "vchasno.ua";
НТТРВчасно = Новый HTTPСоединение(Хост,,,,,60,Новый ЗащищенноеСоединениеOpenSSL());
ОтветHTTP = НТТРВчасно.Получить(ЗапросHTTP, тмпОтвет);
КодОтвета = ОтветHTTP.КодСостояния;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(тмпОтвет);
ФайлОтвета = Новый Файл(тмпОтвет);
Если ФайлОтвета.Существует() Тогда
ТекстОтвета = Новый ТекстовыйДокумент();
ТекстОтвета.Прочитать(тмпОтвет,КодировкаТекста.UTF8);
Если ТекстОтвета.КоличествоСтрок() > 0 Тогда
ОтветСервера = ТекстОтвета.ПолучитьТекст();
КонецЕсли;
Сообщить(ОтветСервера);
_ЧтениеXML = Новый ЧтениеXML;
Попытка
_ЧтениеXML.УстановитьСтроку(ОтветСервера);
Исключение
ОбщегоНазначения.СообщитьОбОшибке("Неудачная попытка чтения ответа сервиса: "+ОписаниеОшибки(), Отказ);
КонецПопытки;
Иначе
ОбщегоНазначения.СообщитьОбОшибке("Не найден файл ответа сервиса: "+тмпОтвет, Отказ);
КонецЕсли;