![]() |
|
Ошибка при вызове метода получить HTTP запрос | ☑ | ||
---|---|---|---|---|
0
Tolstiy Beremenniy
15.07.25
✎
09:09
|
Имеется https-ссылка, где размещена структура json.
Пробую ее получить, чтобы вывести в таблицу значений на форме обработки. Нашел примеры как это сделать. Пробую использовать один из них. Выходит ошибка на строке, - Запрос = HTTPСоединение.Получить(HTTPЗапрос) Что может быть не так? Что нужно поправить? &НаКлиенте Процедура Загрузить(Команда) ВыполнитьЗагрузкуНаСервере(); КонецПроцедуры // &НаСервере Процедура ВыполнитьЗагрузкуНаСервере() HTTPСоединение = Новый HTTPСоединение("https://apps-2.v.ru ,); HTTPЗапрос = Новый HTTPЗапрос("/test_1c.php"); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); //GET Запрос Запрос = HTTPСоединение.Получить(HTTPЗапрос); Результат = ЧтениеJSON(Запрос.ПолучитьТелоКакСтроку()); КонецПроцедуры |
|||
1
Tolstiy Beremenniy
15.07.25
✎
06:15
|
(0) Не знаю на сколько я обошел (0), но сейчас такая ошибка, -
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> Reason: You're speaking plain HTTP to an SSL-enabled server port.<br /> Instead use the HTTPS scheme to access this URL, please.<br /> </p> </body></html> Непредвиденный символ при чтении JSON |
|||
2
vbus
15.07.25
✎
06:59
|
400 Ошибочный запрос
Ваш браузер отправил запрос, который этот сервер не смог понять. Причина: Вы обращаетесь по обычному HTTP к порту сервера с поддержкой SSL. Вместо этого используйте схему HTTPS для доступа к этому URL, пожалуйста. |
|||
3
Мультук
гуру
15.07.25
✎
07:34
|
(0)
1) google: 1с https get Пример: https://helpme1s.ru/rabota-s-http-zaprosami-get-i-post-v-yazyke-1s-8-3-8-2-v-primerax Читаем до "/// Как послать защищенный https запрос к серверу из 1с 8.3, 8.2" Смотрим пример создания HTTPСоединение, сравниваем со своим и удивляемся 2) Берём готовую библиотеку С обработкой ошибок и бла-бла-бла https://github.com/vbondarevsky/Connector |
|||
4
Tolstiy Beremenniy
15.07.25
✎
07:43
|
Остановился на таком решении. на сколько оптимально?
&НаКлиенте Процедура Загрузить(Команда) ЭтотОбъект.тзДанныеJSON.Очистить(); // ВыполнитьЗагрузкуНаСервере(); КонецПроцедуры // &НаКлиенте Процедура ВыполнитьЗагрузкуНаСервере() HTTPСоединение = Новый HTTPСоединение("apps-2.v.ru",443,"admin","1234",,,Новый ЗащищенноеСоединениеOpenSSL(),); HTTPЗапрос = Новый HTTPЗапрос("/test_1c.php"); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); Запрос = HTTPСоединение.Получить(HTTPЗапрос); Результат = ЧтениеJSON(Запрос.ПолучитьТелоКакСтроку()); // КонецПроцедуры // &НаКлиенте Функция ЧтениеJSON(Данные) ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Данные); Структура = ПрочитатьJSON(ЧтениеJSON,,,,, ЭтотОбъект); Для Каждого ЭлементСтруктуры Из Структура.Products Цикл НоваяСтрока = ЭтотОбъект.тзДанныеJSON.Добавить(); // НоваяСтрока.id = ЭлементСтруктуры.id; НоваяСтрока.name = ЭлементСтруктуры.name; НоваяСтрока.price = ЭлементСтруктуры.price; НоваяСтрока.stock = ЭлементСтруктуры.stock; КонецЦикла; КонецФункции |
|||
5
Tolstiy Beremenniy
15.07.25
✎
08:55
|
Какие есть ещё оптимальные варианты загрузки json по ссылке в таблицу значений? То есть получения доступа к странице и считывания с ней структуры json.
|
|||
6
mikecool
15.07.25
✎
08:58
|
(5) парсинг текста
|
|||
7
Tolstiy Beremenniy
15.07.25
✎
09:10
|
(6) Это значительно сложнее же.
Правильнее пользоваться готовыми функциями обработки загрузки. Мне вот удалось прийти к (4). В процессе так же хотел обрабатывать текст, но понял, что это значительно сложнее. И неизвестно, как надежно ещё. Вообще должно быть множество методов решения (4), думается мне. Решил это когда начал просматривать разные варианты по подобным задачам. |
|||
8
Волшебник
15.07.25
✎
09:20
|
см (2)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |