|
1с Скачать WSDL описание WEB сервиса | ☑ | ||
---|---|---|---|---|
0
sagitt
26.05.20
✎
12:35
|
Есть WEB сервис, например:
https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl Если открыть эту ссылку в браузере, то увидим описание, никаких паролей не надо. Хочу прочитать это описание в файл с помощью 1С. пишу ивф=ПолучитьИмяВременногоФайла("wsdl"); КопироватьФайл("https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl", ивф); получаю ошибку: {ВнешнийОтчет.АнализXMLфайла.Форма.ФормаОтчета.Форма(1747)}: Ошибка при вызове метода контекста (КопироватьФайл) КопироватьФайл("https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl", ивф); по причине: Ошибка копирования файлов по причине: Ошибка доступа к файлу 'https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl' по причине: Ошибка работы с Интернет: Удаленный узел не прошел проверку Как сделать, чтобы ошибки не было? |
|||
1
Волшебник
модератор
26.05.20
✎
12:38
|
HTTPS — это защищённое соединение
|
|||
2
Волшебник
модератор
26.05.20
✎
12:39
|
Используй объект HTTPСоединение с флагом HTTPСоединение.ЗащищенноеСоединение=Истина
|
|||
3
DES
26.05.20
✎
12:39
|
Как прочесть HTML страницу из 1С
Как прочесть HTML страницу из 1С |
|||
4
sagitt
26.05.20
✎
12:46
|
К сожалению ссылка не открывается.
|
|||
5
Волшебник
модератор
26.05.20
✎
12:48
|
(4) Ничего у Вас не открывается...
Там нечего читать по Вашему вопросу. forum.mista.ru/topic.php?id=751152 |
|||
6
arsik
гуру
26.05.20
✎
12:49
|
(0) Зачем так по варварски? Импортируй в 1С через ws-ссылки. Там вся структура будет.
https://i.imgur.com/QEhqU4U.png |
|||
7
sagitt
12.06.20
✎
16:43
|
Большое спасибо за ответы. В итоге сделал так:
&НаКлиенте Функция СтруктураURI(Знач СтрокаURI) Экспорт СтрокаURI = СокрЛП(СтрокаURI); // схема Схема = ""; Позиция = Найти(СтрокаURI, "://"); Если Позиция > 0 Тогда Схема = НРег(Лев(СтрокаURI, Позиция - 1)); СтрокаURI = Сред(СтрокаURI, Позиция + 3); КонецЕсли; // строка соединения и путь на сервере СтрокаСоединения = СтрокаURI; ПутьНаСервере = ""; Позиция = Найти(СтрокаСоединения, "/"); Если Позиция > 0 Тогда ПутьНаСервере = Сред(СтрокаСоединения, Позиция + 1); СтрокаСоединения = Лев(СтрокаСоединения, Позиция - 1); КонецЕсли; // информация пользователя и имя сервера СтрокаАвторизации = ""; ИмяСервера = СтрокаСоединения; Позиция = Найти(СтрокаСоединения, "@"); Если Позиция > 0 Тогда СтрокаАвторизации = Лев(СтрокаСоединения, Позиция - 1); ИмяСервера = Сред(СтрокаСоединения, Позиция + 1); КонецЕсли; // логин и пароль Логин = СтрокаАвторизации; Пароль = ""; Позиция = Найти(СтрокаАвторизации, ":"); Если Позиция > 0 Тогда Логин = Лев(СтрокаАвторизации, Позиция - 1); Пароль = Сред(СтрокаАвторизации, Позиция + 1); КонецЕсли; // хост и порт Хост = ИмяСервера; Порт = ""; Позиция = Найти(ИмяСервера, ":"); Если Позиция > 0 Тогда Хост = Лев(ИмяСервера, Позиция - 1); Порт = Сред(ИмяСервера, Позиция + 1); КонецЕсли; Результат = Новый Структура; Результат.Вставить("Схема", Схема); Результат.Вставить("Логин", Логин); Результат.Вставить("Пароль", Пароль); Результат.Вставить("ИмяСервера", ИмяСервера); Результат.Вставить("Хост", Хост); Результат.Вставить("Порт", ?(Порт <> "", Число(Порт), Неопределено)); Результат.Вставить("ПутьНаСервере", ПутьНаСервере); Возврат Результат; КонецФункции &НаКлиенте Процедура ВыполнитьHTTPЗапрос(ПолныйАдресРесурса,имяВрФайла) СтруктураURI = СтруктураURI(ПолныйАдресРесурса); // HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт); //на случай незащищенного соединения HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост,,,,,,Новый ЗащищенноеСоединениеOpenSSL); HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере); Попытка Результат = HTTPСоединение.Получить(HTTPЗапрос,имяВрФайла); Исключение // исключение здесь говорит о том, что запрос не дошел до HTTP-Сервера Сообщить("Произошла сетевая ошибка!"); ВызватьИсключение; КонецПопытки; // Анализируем фатальные ошибки // В большинстве случаев нужно остановить работу и показать пользователю сообщение об ошибке, // включив в него HTTP-статус // Ошибки 4XX говорят о неправильном запросе - в широком смысле // Может быть неправильный адрес, ошибка аутентификации, плохой формат запроса // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4 Если Результат.КодСостояния >= 400 и Результат.КодСостояния < 500 Тогда Сообщить("Код статуса больше 4XX, ошибка запроса. Код статуса: " + Результат.КодСостояния); КонецЕсли; // Ошибки 5XX говорят о проблемах на сервере (возможно, прокси-сервер) // Это может быть программная ошибка, нехватка памяти, ошибка конфигурации и т.д. // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5 Если Результат.КодСостояния >= 500 и Результат.КодСостояния < 600 Тогда Сообщить("Код статуса больше 5XX, ошибка сервера. Код статуса: " + Результат.КодСостояния); КонецЕсли; // Обрабатываем перенаправление Если Результат.КодСостояния >= 300 и Результат.КодСостояния < 400 Тогда Сообщить("Код статуса больше 3XX, Перенаправление. Код статуса: " + Результат.КодСостояния); Если Результат.КодСостояния = 302 Тогда Сообщить("Код статуса 302, Постоянное перенаправление."); АдресРесурса = Результат.Заголовки.Получить("Location"); Если АдресРесурса <> Неопределено Тогда Сообщить("Выполняю запрос по новому адресу " + АдресРесурса); ВыполнитьHTTPЗапрос(АдресРесурса,имяВрФайла); Иначе Сообщить("Сервер не сообщил адрес ресурса!"); КонецЕсли; КонецЕсли; КонецЕсли; // Статусы 1XX и 2XX считаем хорошими Если Результат.КодСостояния < 300 Тогда Сообщить("Скорее всего все хорошо"); Сообщить("Код статуса: " + Результат.КодСостояния); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура АнализWSDL(Команда) ивф=ПолучитьИмяВременногоФайла("wsdl"); ифWSDL="https://3dsec.sberbank.ru/payment/webservices/merchant-ws?wsdl"; ВыполнитьHTTPЗапрос(ИФWSDL,ивф); конецпроцедуры |
|||
8
ДедМорроз
12.06.20
✎
23:33
|
Ссылка в интернете это не файл,и функция не понимает это же не pho,где так можно.
|
|||
9
sagitt
13.06.20
✎
11:03
|
У меня работает и сохраняет во временный файл.
Вы проверяли, у вас не сработало? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |