|
8.2 скачать файл с https без вариантов? | ☑ | ||
---|---|---|---|---|
0
НичегоНе Понятно
26.04.20
✎
13:48
|
Всем привет! Есть вот такой код
Ресурс должен возвращать csv файл. Но я получаю ошибку: "Ошибка работы с Интернет: SSL connect error" Про то, что последним параметром должно идти Новый SSLЧегоТоТам(), а не булево, я в курсе, это 8.3 у меня в распоряжении 8.2. Есть варианты работы с https у 8.2? |
|||
1
ДенисЧ
26.04.20
✎
13:52
|
Есть внешние программки, которые как прокси работают. С почтой прокатывало.
Названия не помню (( |
|||
2
НичегоНе Понятно
26.04.20
✎
13:53
|
(1)что-то там тоннель да, Если юзать внешние программки то можно юзать curl, я думал может быть можно где-то сертификат прикрутить или еще что-то
|
|||
3
ДенисЧ
26.04.20
✎
14:06
|
(2) А зачем тебе вообще 1с для этого? wget справится на ура....
|
|||
4
Asmody
26.04.20
✎
14:11
|
(0) Если windows, то обходи через WinHttp.WinHttpRequest.
|
|||
5
ДенисЧ
26.04.20
✎
14:12
|
||||
6
НичегоНе Понятно
26.04.20
✎
14:15
|
(3)Ну мне нужно только скачать файл, зачем тащить всякие курлы с вгетами но видимо придется
|
|||
7
Asmody
26.04.20
✎
14:18
|
(5) Ну а что делать, если вендор не оставляет нам шансов?
|
|||
8
ДенисЧ
26.04.20
✎
14:21
|
(7) Вегдор даёт. Вот только всякие покемоны не пользуются его даяниями.
|
|||
9
НичегоНе Понятно
26.04.20
✎
14:29
|
(8)Где покемоны? Кто виноват, что вендор в 2015году(дата выхода 8.2.19.130) не понимал, как работает протокол разработанный в 1994году?
|
|||
10
Asmody
26.04.20
✎
14:33
|
(8) Именно поэтому вендор только на десятой годовщине платформы понял, что лучше использовать библиотеки ОС для сетевого стека, а не городить гордый, но свой велосипед
|
|||
11
ДенисЧ
26.04.20
✎
16:13
|
(9) Сейчас, на секундочку - 2020. И вендор таки дал возможность. А всякие покемоны, типа слоупока, могут идти жарить шашлык. На балконе....
|
|||
12
Serginio1
26.04.20
✎
18:31
|
||||
13
ДенисЧ
26.04.20
✎
18:37
|
(12) Ну вот на какого овоща сюда для примитивнейшей задачи тащить этого монстра????
|
|||
14
Serginio1
26.04.20
✎
20:01
|
(13) Что бы потом решать огромное количество примитивнейших задач. И чем этот монстр монструознее других предлагаемых здесь?
Есть выбор, каждому решать, что выбрать |
|||
15
NorthWind
26.04.20
✎
20:07
|
(9) какая теперь разница, кто виноват. Оно - вот такое, примите это как данность. Тем более что выходы есть.
|
|||
16
ptiz
26.04.20
✎
20:25
|
(0) в такой же ситуации из 8.2 работаю с Новый COMОбъект("MSXML2.XMLHTTP.6.0")
|
|||
17
ДенисЧ
26.04.20
✎
20:33
|
(14) Огласи размер предлагаемого тобой дотнета. А потом размер вгета
|
|||
18
Serginio1
26.04.20
✎
21:50
|
(17) От 10 мегабайт и выше в зависимости от задач. .Net джитит используемые сборки.
10 мб по нашим меркам это мелочь. Учитывая, что можно решать кучу задач без ВК |
|||
19
palsergeich
26.04.20
✎
21:58
|
(0) ставишь платформу 8.3.
Создаёшь файловую базу. Там делаешь одну экспортную процедуру по получению этого файла. А потом через com или soap вызываешь эту процедуру. Года 4 назад так и делали, когда главный прод был на 8.2, а файлы тягать надо было, а сторонке по низя. |
|||
20
Вафель
26.04.20
✎
22:40
|
А не проще ли было curl запускать?
|
|||
21
acht
26.04.20
✎
23:09
|
(13) > на какого овоща
http://lurkmore.to/Фатальный_недостаток |
|||
22
lodger
26.04.20
✎
23:19
|
(18) чё-то дорого. решу задачу за пару килобайт.
|
|||
23
НичегоНе Понятно
27.04.20
✎
14:54
|
(22)Без wget curl и (16)(4)?
|
|||
24
НичегоНе Понятно
27.04.20
✎
14:58
|
(15)Согласен. Мне показалось, что по мнению (8) все у кого не последняя версия платформы сам дурак. И это с моей скромной точки зрения не совсем соответствует истине. Или совсем не соответствует.
|
|||
25
ДенисЧ
27.04.20
✎
15:03
|
(24) О, да ты штатный телепат, видать?
|
|||
26
НичегоНе Понятно
27.04.20
✎
15:25
|
(25)Я предположил. Ничего не утверждаю. Так и написал. Мне показалось.
|
|||
27
Вафель
27.04.20
✎
15:38
|
можно еще прокси поставить который будет убирать ссл
|
|||
28
lodger
27.04.20
✎
15:44
|
||||
29
НичегоНе Понятно
27.04.20
✎
15:52
|
(28)Сертификат заменил. Не помогло. Ошибка не изменилась. Там было, что-то про центр лицензирования. Мне этот центр абсолютно не интересен в данном случае.
|
|||
30
ptiz
27.04.20
✎
16:11
|
(23) Без. Как-то само работает.
|
|||
31
lodger
27.04.20
✎
16:13
|
(29) сочувствую вашему работодателю.
тогда немного более явный пример https://www.cs-cart.ru/docs/4.3.x/manager/commerceml/1c/https/ смысл песни тот же, но уже по шагам. |
|||
32
ptiz
27.04.20
✎
16:20
|
(29) 5 минут заняло адаптировать свой код под (0)
Процедура КнопкаВыполнитьНажатие(Кнопка) //covid.ourworldindata.org/data/owid-covid-data.csv Парам = Новый Структура; Парам.Вставить("ИмяМетода", "GET"); Парам.Вставить("АдресСервера", "https://covid.ourworldindata.org"); Парам.Вставить("Путь", "data/owid-covid-data.csv"); //Парам.Вставить("ТелоЗапроса", ""); Результат = ВыполнитьЗапросHTTP(Парам); КонецПроцедуры Функция ВыполнитьЗапросHTTP(Парам, Сообщать = Истина) Экспорт ИмяМетода = Парам.ИмяМетода; // GET/POST АдресСервера = Парам.АдресСервера; // covid.ourworldindata.org Путь = Парам.Путь; // data/owid-covid-data.csv // уберем "/" слева и справа Если Лев(Путь, 1) = "/" Тогда Путь = Сред(Путь, 2); КонецЕсли; Если Прав(Путь, 1) = "/" Тогда Путь = Лев(Путь, СтрДлина(Путь) - 1); КонецЕсли; ТелоЗапроса = ?(Парам.Свойство("ТелоЗапроса"), Парам.ТелоЗапроса, ""); // строка json СтрокаПараметров = ""; Если Парам.Свойство("ПараметрыЗапроса") Тогда СтрокаПараметров = ""; Для каждого КлючИЗначение Из Парам.ПараметрыЗапроса Цикл СтрокаПараметров = СтрокаПараметров + ?(СтрокаПараметров = "", "?", "&") + КлючИЗначение.Ключ + "=" + КлючИЗначение.Значение; КонецЦикла; КонецЕсли; // Описание: // http://xmlhttprequest.ru/ // https://ru.wikipedia.org/wiki/XMLHttpRequest // https://docs.microsoft.com/en-us/previous-versions/windows/desktop/hh830204(v%3dvs.85) //xmlhttp = Новый COMОбъект("MSXML2.ServerXMLHTTP"); //xmlhttp = Новый COMОбъект("MSXML2.XMLHTTP.3.0"); xmlhttp = Новый COMОбъект("MSXML2.XMLHTTP.6.0"); ПолныйПуть = АдресСервера + "/" + Путь + СтрокаПараметров; xmlhttp.Open(ИмяМетода, ПолныйПуть, Ложь); //xmlhttp.setRequestHeader("Content-Type", "application/json"); Стр = ПолныйПуть + Символы.ПС + ТелоЗапроса; //xmlhttp.setOption 2, 13056 'sets the option "SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS" to "SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS" Попытка xmlhttp.send(ТелоЗапроса); Структура = Новый Структура; Структура.Вставить("КодСтатуса", xmlhttp.status); Структура.Вставить("ТекстСтатуса", xmlhttp.statusText); Структура.Вставить("СтрокаОтвета", xmlhttp.responseText); Исключение Стр = ОписаниеОшибки(); Структура = Новый Структура; Структура.Вставить("КодСтатуса", 0); Структура.Вставить("ТекстСтатуса", ""); Структура.Вставить("СтрокаОтвета", Стр); КонецПопытки; Если Сообщать ИЛИ Структура.КодСтатуса <> 200 Тогда Сообщить(ПолныйПуть); Сообщить("КодСтатуса=" + Структура.КодСтатуса); Сообщить("ТекстСтатуса=" + Структура.ТекстСтатуса); Сообщить("СтрокаОтвета=" + Структура.СтрокаОтвета); КонецЕсли; Стр = "КодСтатуса=" + Структура.КодСтатуса + Символы.ПС + "ТекстСтатуса=" + Структура.ТекстСтатуса + Символы.ПС + "СтрокаОтвета=" + Структура.СтрокаОтвета; Возврат Структура; КонецФункции // ВыполнитьЗапросHTTP() |
|||
33
НичегоНе Понятно
27.04.20
✎
16:31
|
(31)За инструкцию спасибо, сейчас попробую. Немного смущает добавление сертификатов в 1С. Это какая-то грусть, к каждому компу не набегаешься, а выполнять хочется в форме. Но это лучше чем ничего. Помочь и не выпятить свое ЧСВ это наверное невыполнимая задачи для 1Сника.
|
|||
34
craxx
27.04.20
✎
17:23
|
(19) Вот именно так я и делал, просто http-сервис в базе 8.3 поднял, и к нему долбился из 8.2
Потом достало и перешел на 8.3, и таковая необходимость отпала |
|||
35
lodger
27.04.20
✎
19:17
|
(19) OR (34) - дешевле stunnel поставить. смысл тот же, но без костыля в виде целой базы на 1с.
|
|||
36
ptiz
28.04.20
✎
08:38
|
(33) Зачем тебе сертификаты куда-то добавлять? Без них прекрасно работает.
|
|||
37
palsergeich
28.04.20
✎
10:33
|
(35) с точки зрения владения - дешевле отдельная база, ибо взяв человека с улицы и выгнав текущих работников он гарантированно разберётся в том что происходит.
|
|||
38
Cyberhawk
28.04.20
✎
11:20
|
У этого сайта сертификат просто от letsencrypt, тебе нужно его положить в bin платформы (в cacert.pem)
|
|||
39
Asmody
28.04.20
✎
11:23
|
(38) сам-то пробовал?
|
|||
40
Cyberhawk
28.04.20
✎
11:25
|
(39) Какие могут быть вопросы?
|
|||
41
Asmody
28.04.20
✎
11:30
|
(39)+ если сайт использует TLS, а более "слабые" протоколы отключены (а это нынче повсеместная практика из-за "текучего" SSL), вы можете что угодно класть в cacert.pem, толку не будет.
|
|||
42
Cyberhawk
28.04.20
✎
11:31
|
(41) Вообще-то 8.2 прекрасно поддерживает TLS 1.0, поэтому если он у сайта не отключен, то все заработает.
Впрочем, посмотрел на сайт автора - там TLS 1.0 отключен, так что на 8.2 из коробки не прокатит. |
|||
43
Asmody
28.04.20
✎
11:32
|
Для справки: платформа узнала про TLS с версии 8.3.3. Про TLS 1.1 и выше с версии 8.3.8. Полноценная поддержка TLS 1.2 в 8.3.9
|
|||
44
Cyberhawk
28.04.20
✎
11:35
|
(43) "платформа узнала про TLS с версии 8.3.3" // Брехня, см. (42)
|
|||
45
НичегоНе Понятно
29.04.20
✎
12:08
|
В связи с (42) решил использовать (32) потому, что других вариантов кроме wget и curl(которые не запускаются в регламентном задании) нет. lodger я так понял рассуждал в теории.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |