|
Некорректно работает POST запрос | ☑ | ||
---|---|---|---|---|
0
IVT_2009
27.02.20
✎
09:13
|
Есть такой фрагмент кода , который отправляет POST запрос в маркировку табака
ид = "000"; КлючСессии = параметрыСеанса.мрТекущийТокенПодписи; //_сервер = параметрыСеанса.мрТекущийКонтурМаркировки; _Сервер = "int01.gismt.crpt.tech"; строкаЗапроса = "/api/v3/true-api/cises/list"; соеденение = Новый HTTPСоединение(_сервер, , , , , , Новый ЗащищенноеСоединениеOpenSSL); запрос = Новый HTTPЗапрос(строкаЗапроса); запрос.АдресРесурса = строкаЗапроса; //запрос.Заголовки.Вставить("Accept", "application/json"); запрос.Заголовки.Вставить("Authorization", СтрШаблон("Bearer %1", параметрыСеанса.мрТекущийТокенПодписи)); запрос.Заголовки.Вставить("Content-Length", стрДлина("?values=" + ид)); запрос.Заголовки.Вставить("Content-Type", "application/json;charset=UTF-8"); Запрос.УстановитьТелоИзСтроки("?values=" + ид); Попытка файлОтвет = ПолучитьИмяВременногоФайла("json"); ответ = соеденение.ОтправитьДляОбработки(Запрос, файлОтвет); //ответ = соеденение.Получить(запрос, файлОтвет); Исключение Сообщить(ОписаниеОшибки()); Возврат ""; КонецПопытки; возврат файлОтвет; по документации должен быть такой запрос: POST https://int01.gismt.crpt.tech/api/v3/true-api/cises/list?values=000000462106549OOv1s0XzlzIFDjtcXJjz5cB&values=00000046210654QuHCUeP&values=(01)00000046210654(21)oFTjHaM Accept: application/json Authorization: Bearer <ТОКЕН> я его делаю и получаю ошибку 400 //2.2. Код 400 При отсутствии обязательного параметра: { "error_message": "Отсутствует обязательный параметр: values" } что я делаю не так? |
|||
1
НЕА123
27.02.20
✎
09:25
|
может так
ид = """000"""; |
|||
2
IVT_2009
27.02.20
✎
09:30
|
(1) не прокатило : {"error_message":"Отсутствует обязательный параметр: values"}
такое ощущение , что он не понимает что ему в теле передали |
|||
3
IVT_2009
27.02.20
✎
09:46
|
up
|
|||
4
palsergeich
27.02.20
✎
10:14
|
Запрос.УстановитьТелоИзСтроки("?values=" + ид);
Вот это не так. Тело это не адресная строка |
|||
5
IVT_2009
27.02.20
✎
10:16
|
Вопрос тогда немного другой:
Есть строка запроса: https://int01.gismt.crpt.tech/api/v3/true-api/cises/list?values=000000462106549OOv1s0XzlzIFDjtcXJjz5cB ресурс запроса это: строкаЗапроса = "/api/v3/true-api/cises/list" или : строкаЗапроса = "/api/v3/true-api/cises/list?" или : строкаЗапроса = "/api/v3/true-api/cises/list?values" что будет правильной строкой для подстановки в запрос = Новый HTTPЗапрос(строкаЗапроса); |
|||
6
palsergeich
27.02.20
✎
10:18
|
api/v3/true-api/cises/list?values=000000462106549OOv1s0XzlzIFDjtcXJjz5cB - вот это будет строкой запроса
|
|||
7
IVT_2009
27.02.20
✎
10:20
|
(6) запрос POST не GET , что тогда телом будет ?
|
|||
8
palsergeich
27.02.20
✎
10:22
|
(7) Пустое тело в POST допускается.
|
|||
9
IVT_2009
27.02.20
✎
10:24
|
Сделал , пишет Отсутствует обязательный параметр: values
|
|||
10
palsergeich
27.02.20
✎
10:35
|
Открывай описание api
И смотри что должно быть в теле |
|||
11
IVT_2009
27.02.20
✎
11:01
|
В описании вот это: https://yadi.sk/i/r4v2bjBrMNn0hg
Вопрос еще в том , что на их стороне может что то не так работать, но это маловероятно. Это какой то POST запрос , но как GET |
|||
12
palsergeich
27.02.20
✎
11:30
|
запрос.Заголовки.Вставить("Content-Length", стрДлина("?values=" + ид)); - не надо Это ошибка. 1с сама этот заголовок вставляет.
|
|||
13
IVT_2009
27.02.20
✎
13:29
|
После двух дней танцев с бубном он заработал, вот текст функции:
&наСервере функция запросУпаковокПоИд4(ид) ЭКСПОРТ КлючСессии = параметрыСеанса.мрТекущийТокенПодписи; _Сервер = "int01.gismt.crpt.tech"; ПараметрыЗапроса = Новый Массив; ПараметрыЗапроса.Добавить(СтрШаблон("values=%1",ид)); строкаЗапроса = СтрШаблон("/api/v3/true-api/cises/list?%1",СтрСоединить(ПараметрыЗапроса, "&")); соеденение = Новый HTTPСоединение(_сервер, , , , , , Новый ЗащищенноеСоединениеOpenSSL); запрос = Новый HTTPЗапрос(строкаЗапроса); запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); запрос.Заголовки.Вставить("Accept-Charset", "utf-8"); Попытка файлОтвет = ПолучитьИмяВременногоФайла("json"); ответ = соеденение.ОтправитьДляОбработки(Запрос, файлОтвет); //ответ = соеденение.Получить(запрос, файлОтвет); Исключение Сообщить(ОписаниеОшибки()); Возврат ""; КонецПопытки; возврат файлОтвет; конецФункции //запросУпаковокПоИд4 |
|||
14
palsergeich
27.02.20
✎
16:30
|
(13) Гратц, чо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |