Имя: Пароль:
1C
1С v8
Сломались http запросы после обновления платформы
0 Mulber
 
02.02.24
08:42
Доброго времени суток. После обновления платформы перестали работать GET запросы к некоторым API. Обновление УПП с 8.3.11 до 8.3.22. Причем при запущенном Fiddler-e запросы благополучно отрабатывают. Не уверен, нужен-ли код: он максимально прост и отлично отрабатывал ранее. Гуглил, зачастую отсылают проверить, не блочит ли прокси/брандмауэр. Да вроде все ок: прокси вырублен, как и брандмауэр. Запросы в cUrl и Postman отлично отрабатывают. Нужны мысли, куда "копать"? Может кто сталкивался со схожей ситуацией?
1 Mulber
 
02.02.24
08:46
на всяк-случай:
    Соединение = Новый HTTPСоединение(Выборка.Хост, , , , , , Новый ЗащищенноеСоединениеOpenSSL());
    
    СтрокаЗапроса = Выборка.СтрокаЗапроса;
    
    Если ПодготавливатьСтроку Тогда
        JFR_ПодключениеИЗагрузкаДанныхПоставщиков.ПодготовитьСтроку(СтрокаЗапроса, _MPN, _MAN, _QTY, _TKN, _RES1, _RES2, Индекс, НомерЗапроса);    
    КонецЕсли;
    
    Запрос = Новый HTTPЗапрос(СтрокаЗапроса, Заголовки);
    ТелоЗапроса = Выборка.ТелоЗапроса;
    
    Если ПодготавливатьСтроку Тогда
        JFR_ПодключениеИЗагрузкаДанныхПоставщиков.ПодготовитьСтроку(ТелоЗапроса, _MPN, _MAN, _QTY, _TKN, _RES1, _RES2, Индекс, НомерЗапроса, "https://" + Выборка.Хост + СтрокаЗапроса);
    КонецЕсли;
    
    Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

    Ответ = Соединение.ВызватьHTTPМетод(?(Выборка.МетодЗапроса = 0, "GET", "POST"), Запрос); // тут ловим Ошибка работы с Интернет:  Failure when receiving data from the peer. Причем POST запрос к этому хосту для получения токена работает даже после обновления платформы
2 ТДК
 
02.02.24
08:55
Наблюдал в  работе релиза 8.22 следующие ошибки в работе http сервисов по сравнению с другими релизами. Во-первых более длительная авторизация, в моем случае на 0.5 секунды. Во-вторых, при работе GET запроса и если объем передаваемых данных превышал 100 строк, http сеанс замирал. При отладке: запрос к БД отработал нормально, json сформировал, а зависание происходило в момент ответа. Во-вторых, часть POST запросов стала работать нестабильно. То работает, то нет, в каких то случаях поможет рестарт службы, в каких-то требовался рестарт сервера.
При смене релиза на 8.21 или 8.23 проблемы ушли.
3 d4rkmesa
 
02.02.24
09:03
(2) Тоже наблюдал странности, интеграция с ДО внезапно начинала тугодумить. Помог рестарт сервисов 1С.
4 Тихий омут
 
02.02.24
10:14
С версии 8.3.21 поменялось функционирование http. На клиенте следует использовать асинхронные методы. Несколько дней назад сам столкнулся, очень "удачно" запустив на 23 релизе платформы базу, работающую на древнем 8.3.9
5 Mulber
 
02.02.24
10:21
(4) беда в том, что в моем случае асинх. отменяется (у меня регламентное задание, выполняемое на сервере)
6 Mulber
 
02.02.24
11:31
лол, Господа, может кому пригодится при обновлении платформы: в моем случае дело оказалось в методе УстановитьТелоИзСтроки. он у меня отрабатывал и для GET запросов, где совершенно не нужен, ибо тела GET не имеет. но раньше это не ломало запрос, а сейчас - да. всем спасибо за участие. +1 фобия мне (обновление платформы)
7 Тихий омут
 
02.02.24
11:48
(6) УстановитьТелоИзСтроки - вызывал с пустой строкой? У меня тоже "поломалось" именно на get, но я как-то не задумывался, что вызов этого метода с пустой строкой может быть опасным
8 Mulber
 
02.02.24
13:49
(7) да, вызов с пустой строкой на GET. ранее работавший )
9 Тихий омут
 
05.02.24
05:24
(8) Большое спасибо за информацию
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс