Имя: Пароль:
1C
1С v8
HTTP запрос из 1С
0 Andrey_1811
 
22.06.17
10:40
Добрый день. Может кто подскажет почему так происходит?
Делаю запрос к API через Curl вида:
curl -i -X POST -H 'Content-Type: application/json-rpc' -d '{"jsonrpc": "2.0","method": "host.get","params": {"groupids":"45"},"id": 0,"auth": "9a59f9d85ba01c2036bc59932a"}' http://zbx.ru/api_jsonrpc.php
Все работает, данные передаются, ответ сервера приходит.

Пытаюсь реализовать средствами 1с:
СерверПриемник = "zbx.ru";
АдресСтраницыНаСервере = "api_jsonrpc.php";
Таймаут = 120;
HTTP = Новый HTTPСоединение(СерверПриемник,,,,,Таймаут,,);
ЗаголовокЗапросаHTTP = Новый Соответствие();
ЗаголовокЗапросаHTTP.Вставить("Content-Type: ", "application/json-rpc");
HTTPЗапрос = Новый HTTPЗапрос(АдресСтраницыНаСервере, ЗаголовокЗапросаHTTP);
СтрокаJSON = ("{
|    ""jsonrpc"": ""2.0"",
|    ""method"": ""host.get"",
|    ""params"": {""groupids"": 45},
|    ""id"": 0,
|    ""auth"": ""9a59f9d85ba01c2036bc59932a""}");
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON,,);
    ФайлРезультат = ПолучитьИмяВременногоФайла();
    HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультат);
    ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
    ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
    СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();    
    Сообщить(СтрокаОтветаСервера);

Приходит пустой ответ от сервера. Если убрать значение АдресСтраницыНаСервере - то ответ прийдет с формой аутентификации (т.е. код отправляется и ответ приходит). Может я где то в коде параметр какой забыл? Заранее большое спасибо.
1 Широкий
 
22.06.17
10:42
Попробуй так:
СерверПриемник = "http://zbx.ru";;
2 Andrey_1811
 
22.06.17
10:48
Ошибка 404
3 sFAQer
 
22.06.17
10:58
HTTP.Получить(HTTPЗапрос,ФайлРезультат); ?
4 sFAQer
 
22.06.17
11:01
А ещё можно без файла так то
Ответ = HTTP.Получить(HTTPЗапрос);
5 Andrey_1811
 
22.06.17
11:14
(3-4) Добавил, приходит пустой ответ(
6 sFAQer
 
22.06.17
11:16
(5) Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8) - тут тоже пусто?
7 Юрий Лазаренко
 
22.06.17
11:28
(0) Слэша не хватает:
АдресСтраницыНаСервере = "api_jsonrpc.php";
должно быть
АдресСтраницыНаСервере = "/api_jsonrpc.php";
8 Andrey_1811
 
22.06.17
11:30
(7) Пробовал и с ним и без него, пустой ответ)
9 Andrey_1811
 
22.06.17
11:34
(6) Вернул HTTPОтвет
10 Andrey_1811
 
23.06.17
09:13
Нашел ошибку: скобки в теле запроса JSON не нужны. Все работает. Спасибо за участие)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс