Имя: Пароль:
1C
 
Простейший GET запрос с параметрами
0 FFrr1C
 
19.06.24
14:33
Есть простейшая api, нужно ответ по следующей строке https://api.jde.ru/vD/calculator/price?from=1125899906842658&to=1125899906842673&weight=12&width=1&volume=1&type=1
из описания:
метод  GET /calculator/price
параметры: from,to,weight,width,volume,type

можно ли как то передавать параметры в этих объектах для наглядного формирования строки

Соединение = Новый HTTPСоединение(АдресСервера,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    
Запрос = Новый HTTPЗапрос(СтраницаСервера);

Попытка
Результат = Соединение.Получить(Запрос);
1 Мультук
 
19.06.24
14:36
(0)

1) Написать обертку самому
2) Взять (например)

https://github.com/vbondarevsky/Connector
2 FFrr1C
 
19.06.24
14:36
понятно, что можно напарсить строку, и через ПолучитьФайлИзИнтернета() получить результат, но интересует, можно ли как-то на объектном уровне это прписать?
3 spiller26
 
19.06.24
14:53
(0) так параметры вот они
from=1125899906842658&to=1125899906842673&weight=12&width=1&volume=1&type=1
Вы не можете понять как их прописывать в коде?
4 FFrr1C
 
19.06.24
14:55
Да, именнно! как на уровне 1С прописать их, в объекте?, через структуру или еще чего..
5 FFrr1C
 
19.06.24
14:56
зачем то эти объекты придуманы
Соединение = Новый HTTPСоединение(АдресСервера,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    
Запрос = Новый HTTPЗапрос(СтраницаСервера);

в них как то можно структуру параметров передавать?
6 spiller26
 
19.06.24
14:57
АдресСервера = "api.jde.ru"
Соединение = Новый HTTPСоединение(АдресСервера,,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/vD/calculator/price?from=1125899906842658&to=1125899906842673&weight=12&width=1&volume=1&type=1");
7 FFrr1C
 
19.06.24
14:57
просто наколотить строку from=1125899906842658&to=1125899906842673&weight=12&width=1&volume=1&type=1 парсингом, можно, но именно и интересует для этого есть какие-то методы в 1С
8 FFrr1C
 
19.06.24
14:59
ТИпа.. новый Структура("From,to","1125899906842658,1125899906842673")
9 arsik
 
19.06.24
15:02
Накуя? Ну напиши себе метод из структуры в строку если так хочется
10 Garikk
 
19.06.24
15:03
а УстановитьТелоИзСтроки не подставит в правильное место эти параметры?

(9) чтобы велосипеды с построением запроса не строить, логично же
11 spiller26
 
19.06.24
17:15
Если хочешь структуру, то воспользуйся "КоннекторHTTP"

ПараметрыСтруктура= Новый Структура;
ПараметрыСтруктура.Вставить("from", "1125899906842658");
ПараметрыСтруктура.Вставить("to", "1125899906842673");
ПараметрыСтруктура.Вставить("weight", "12");
ПараметрыСтруктура.Вставить("width", "8");
ПараметрыСтруктура.Вставить("volume", "1");
ПараметрыСтруктура.Вставить("type", "1");
Результат = КоннекторHTTP.GetJson("https://api.jde.ru/vD/calculator/price",ПараметрыСтруктура);
12 arsik
 
19.06.24
15:05
(10) GET не предполагает тела. Хотя сейчас есть извращенцы которые тело к GET прикручивают.
13 FFrr1C
 
19.06.24
15:05
(9) ну мы же, не пишем в строку JSON,XML, на объект дали, а тут получается не дали? я об этом спрашиваю..
14 FFrr1C
 
19.06.24
17:15
(11)

Если хочешь структуру, то воспользуйся "КоннекторHTTP"

ПараметрыСтруктура= Новый Структура;
ПараметрыСтруктура.Вставить("from", "1125899906842658");
ПараметрыСтруктура.Вставить("to", "1125899906842673");
ПараметрыСтруктура.Вставить("weight", "12");
ПараметрыСтруктура.Вставить("width", "8");
ПараметрыСтруктура.Вставить("volume", "1");
ПараметрыСтруктура.Вставить("type", "1");
Результат = КоннекторHTTP.GetJson("https://api.jde.ru/vD/calculator/price", ПараметрыСтруктура);


вот прям в точку, а что это за коннекторHTTP, костыль?
15 arsik
 
19.06.24
15:08
(14) Фраемворк
16 Garikk
 
19.06.24
15:09
(12) само собой не предполагает, тут вопрос не о стандарте http, а о том как 1С обрабатывает запрос... платформа может заполненное тело оттранслировать в url
в postman нечто подобное происходит если тело не в raw заполнять
17 spiller26
 
19.06.24
15:08
(14) https://infostart.ru/1c/articles/709325/
и в (1) давали примерно тоже самое.
18 ptiz
 
19.06.24
15:22
(0) Пример из типовой УТ 11:

    ПараметрыЗапроса = Новый Массив;
    
    // Номер страницы (отсчёт с 0)
    ПараметрыЗапроса.Добавить(СтрШаблон("page=%1", 0));
    
    // Количество записей на странице
    ПараметрыЗапроса.Добавить(СтрШаблон("size=%1", ИдентификаторыЗаданий.Количество()));
    
    Если ЗначениеЗаполнено(ВидПродукции) Тогда
        // Кодовое значение товарной группы
        ПараметрыЗапроса.Добавить(
            СтрШаблон(
                "pg=%1",
                ИнтерфейсИСМПСлужебный.ТоварнаяГруппаЧислом(ВидПродукции)));
    КонецЕсли;
    
    // Список ID задач
    ПараметрыЗапроса.Добавить(
        СтрШаблон(
            "task_ids=%1",
            СтрСоединить(ИдентификаторыЗаданий, ",")));
    
    URLЗапроса = СтрШаблон(
        "api/v3/true-api/dispenser/results%1",
        ИнтерфейсИСМП.ПараметрыЗапроса(ПараметрыЗапроса));

    РезультатЗапроса = ИнтеграцияИСМП.ПолучитьДанныеИзСервиса(URLЗапроса, КлючСессии, ИнтерфейсМОТПКлиентСервер.ПараметрыОтправкиHTTPЗапросов(""));



Функция ПараметрыЗапроса(ПараметрыЗапроса = Неопределено) Экспорт
    
    Если ПараметрыЗапроса <> Неопределено
        И ПараметрыЗапроса.Количество() > 0 Тогда
        Возврат "?" + СтрСоединить(ПараметрыЗапроса, "&");
    КонецЕсли;
    
    Возврат "";
    
КонецФункции
19 ttk
 
19.06.24
15:41
Функция ДополнитьАдрес(Адрес, Параметры)
    адресВрем = "";
    Для Каждого парам Из Параметры Цикл
        адресВрем = АдресВрем + ?(адресВрем="","?","&") + парам.Имя + "=" + парам.Значение;
    КонецЦикла;
    
    Возврат Адрес + адресВрем;
КонецФункции
20 oleg_km
 
19.06.24
15:59
Еще вроде спецсимволы замаскировать
21 Naruto66
 
20.06.24
08:46
https://infostart.ru/1c/articles/709325/ по этому туториалу делала, у меня получилось
22 Ненавижу 1С
 
20.06.24
08:49
(12) стандарт и не запрещает с другой стороны