![]() |
|
HTTP. Передача параметров через POST | ☑ | ||
---|---|---|---|---|
0
Slon747
15.05.19
✎
15:01
|
Есть работающая команда curl для передачи методом POST:
curl -H "Content-Type: application/json" -H "x-s-k: 1cTestKey" -H "Accept: application/json" -d '[{"uid":"9af671c2-3fbe7-1e8f-3085a99d1f35","active":true,"i18n":{"ua":{"name":"Color 2"},"ru":{"name":"Цвет"}}}]' https://mydomain.com/api/v1/catalog/option Тут передается: 1. Ключ API "x-s-k" со значением "1cTestKey" 2. Строка JSON Куда передается: https://mydomain.com/api/v1/catalog/option Пробую сделать то же самое в 1С: //читаем JSON из файла ФайлJSON= Новый ЧтениеТекста("C:\post.json", КодировкаТекста.UTF8); СтрокаJSON = ФайлJSON.Прочитать(); //создаем HTTPS-соединение ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Выбирать), Новый СертификатыУдостоверяющихЦентровWindows()); HTTPСоединение = Новый HTTPСоединение("mydomain.com",,,,,5, ssl); HTTPЗапрос = Новый HTTPЗапрос("/api/v1/catalog/categories"); HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json"); HTTPЗапрос.Заголовки.Вставить("x-s-k", "1cTestKey"); HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Сообщить("Код результата: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Получаю ответ "{"status":false}", т.е. совсем не то, что через curl. Не подскажете, что не правильно? |
|||
1
polosov
15.05.19
✎
15:04
|
Новый HTTPЗапрос("/api/v1/catalog/categories");
|
|||
2
Slon747
15.05.19
✎
15:12
|
(1) Забыл добавить HTTPЗапрос.Заголовки.Вставить("Accept", "application/json");
Но не помогло А что не так с Новый HTTPЗапрос("/api/v1/catalog/categories"); ? |
|||
3
polosov
15.05.19
✎
15:15
|
(2) Курл обращается к сервису /api/v1/catalog/option
а 1с к /api/v1/catalog/categories |
|||
4
trad
15.05.19
✎
15:17
|
(2) в примере с курлом /api/v1/catalog/option
|
|||
5
Slon747
15.05.19
✎
15:20
|
(4) но в файле json у меня был верный, для categories.
А вот так заработал: Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type","application/json"); Заголовки.Вставить("Accept","application/json"); Заголовки.Вставить("x-s-k","1cTestKey"); Попытка Соединение = Новый HTTPСоединение("mydomain.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Исключение Сообщить("Ошибка соединения с сайтом"); КонецПопытки; Если НЕ Соединение = Неопределено Тогда Попытка ФайлДанных = Новый ЧтениеТекста("C:\post.json", КодировкаТекста.UTF8); Строка = ФайлДанных.Прочитать(); HTTPЗапрос = Новый HTTPЗапрос("/api/v1/catalog/categories",Заголовки); HTTPЗапрос.УстановитьТелоИзСтроки(Строка); Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос); ОтветВВидеСтроки = ""; ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку(); Сообщить(ОтветВВидеСтроки); Исключение Сообщить("Ошибка соединения с сайтом"); КонецПопытки; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |