Добрый день.
1С 7.7
Стоит задача организовать обмен и получение данных через API. Проблема с передачей параметров FromData. При этом совершенно для меня непонятно почему так.
1. В первом случае передается 1 параметр и отрабатывается все нормально. (ТекстЗапроса_article_by_code_firm)
2. Во втором случаи тоже один параметр, запрос отрабатывается но пишет - "error": "Set right format [id] - put techId pro!" ... что пишет я понимаю, но как подать параметр другого типа данных не знаю. (ТекстЗапроса_order_list_get)
3. Передаю 2-ва параметра. Вообще запрос не отрабатывается, постоянно ошибка. (ТекстЗапроса_articles_firm)
Процедура test()
URL = "https://api2.ifur.pro/api/";
Токен = "хххххххххххххххххххххххххххххххххх";
boundary = "7MA4YWxkTrZu0gW";
ТекстЗапроса_article_by_code_firm="--"+boundary+"
//1 параметр
|Content-disposition: form-data; name=""code1c""" + РазделительСтрок +
РазделительСтрок + "
|125" + РазделительСтрок + "
|--" + Boundary + "--"
;
ТекстЗапроса_articles_firm="--"+boundary+"
//1 параметр
|Content-disposition: form-data; name=""lang""" + РазделительСтрок +
РазделительСтрок + "
|ru" + РазделительСтрок + "
|--" + Boundary + "
//2 параметр
|Content-disposition: form-data; name=""zip""" + РазделительСтрок +
РазделительСтрок + "
|1" + РазделительСтрок + "
|--" + Boundary + "--"
;
ТекстЗапроса_order_list_get="--"+boundary+"
//1 параметр
|Content-disposition: form-data; name=""id""" + РазделительСтрок +
РазделительСтрок + "
|64309" + РазделительСтрок + "
|--" + Boundary + "--"
;
Запрос = СоздатьОбъект("winhttp.winhttprequest.5.1");
Запрос.open("POST", url, 0);
Запрос.SetRequestHeader("key", Токен);
Запрос.SetRequestHeader("action", "article_by_code_firm"); // ТекстЗапроса_article_by_code_firm
//Запрос.SetRequestHeader("action", "articles_firm"); // ТекстЗапроса_articles_firm
//Запрос.SetRequestHeader("action", "order_list_get"); // ТекстЗапроса_order_list_get
Запрос.setRequestHeader("Content-Type","multipart/form-data;boundary=" + Boundary);
Запрос.setRequestHeader("Content-Length", СтрДлина(ТекстЗапроса_article_by_code_firm));
Запрос.send(ТекстЗапроса_article_by_code_firm);
Если (Запрос.Status = 200) тогда
Ответ = Запрос.ResponseText;
тк=СоздатьОбъект("Текст");
тк.ДобавитьСтроку(Ответ);
тк.Записать("D:\temp\answer.json");
Иначе
ТекстОшибки = "Ошибка: " + Запрос.status + " : " + Запрос.statusText;
Сообщить(ТекстОшибки);
КонецЕсли;
КонецПроцедуры
Буду признателен если поможете. Для 7.7 либо тут уже домучать как то, либо прийдется что-то внешнее подключать. Задача примитивная, но в стандартной 7-ке с инструментами для ее решения не очень.
Спасибо.