|
Простейший 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
|
||||
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) стандарт и не запрещает с другой стороны
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |