|   |   | 
| 
 | 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Запрос); ОтветВВидеСтроки = ""; ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку(); Сообщить(ОтветВВидеСтроки); Исключение Сообщить("Ошибка соединения с сайтом"); КонецПопытки; КонецЕсли; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |