Имя: Пароль:
1C
 
Ошибка при вызове метода получить 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)