HTTP запрос JSON

1. Snus71 233 18.10.18 14:26 Сейчас в теме
Уважаемые, пытаюсь законектиться к CRM envycrm
У них в описании API сказано
Для получения полного списка клиентов необходимо вызвать метод:
POST https://envycrm.com/crm/api/v1/client/list/?api_key=ваш_ключ_апи
В качестве параметров запроса необходимо передать в тело запроса JSON массив параметров для поиска, вида:
{"request":{"keyword": "", "limit": 0, "offset": 0, "date_start": "2017-07-10", "date_end": "2017-07-10"}}


Пишу
Процедура КнопкаВыполнитьНажатие(Кнопка)
	Соединение = Новый HTTPСоединение("********.envycrm.com", ,"*******@mail.ru", "********",,,Новый ЗащищенноеСоединениеOpenSSL,Истина);
	Запрос = Новый HTTPЗапрос("https://envycrm.com/crm/api/v1/client/list/?api_key=**********************************");
	ПараметрыЗапроса = Новый Структура;
	ПараметрыЗапроса.Вставить("keyword","");
	ПараметрыЗапроса.Вставить("limit",100);
	ПараметрыЗапроса.Вставить("offset",0);
	ПараметрыЗапроса.Вставить("date_start","2018-01-01");
	ПараметрыЗапроса.Вставить("date_end","2019-01-01");
	Стр = ЗначениеВJSON(ПараметрыЗапроса);
	Запрос.УстановитьТелоИзСтроки(Стр,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);
	ИмяФайлаОтвета = ПолучитьИмяВременногоФайла("txt"); 
	Результат = Соединение.ОтправитьДляОбработки(Запрос, ИмяФайлаОтвета);
	Текст = Новый ЧтениеТекста(ИмяФайлаОтвета, КодировкаТекста.UTF8);
	Ответ = Текст.Прочитать();
	Сообщить("Вернули код " + Результат.КодСостояния);
	Сообщить("Результат: " + Ответ);   
КонецПроцедуры

Функция ЗначениеВJSON(Данные, ПараметрыЗаписи = Неопределено) 
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.ПроверятьСтруктуру = Истина;
	ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
	ЗаписатьJSON(ЗаписьJSON, Данные);
	Результат = ЗаписьJSON.Закрыть();
	Возврат Результат;
КонецФункции
Показать


Там, где звездочки - логин, пароль клиента и ключ api, конечно. Всё правильно, авторизация проходит.
В ответ получаю код 200 (выполнено) и ... html-страницу их сайта. Всё. Поддержка мычит что-то невразумительное
Я что-то делаю не так ? Похоже собственно до JSON достучаться не удается, параметры и ссылка игнорируются и я просто получаю get-запросом (хотя делаю post) заглавную страницу сайта
Что делать и кто виноват ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nbeliaev 830 19.10.18 05:38 Сейчас в теме
(1)
В HTTPЗапрос первым параметром нужно передавать адрес ресурса, в данном случае будет
"crm/api/v1/client/list/?api_key=**********************************"

Хотя может и работает как у Вас, но я так ни разу не делал.
И потом, у Вас неправильно формируется тело запроса. Я не вижу корневого элемента
request

И еще, зачем Вы результат сохраняете на диск? Потом его читаете - это лишнее время. Тело ответа можно сразу получить как Строка.
3. Snus71 233 19.10.18 10:20 Сейчас в теме
(2)
И еще, зачем Вы результат сохраняете на диск? Потом его читаете - это лишнее время. Тело ответа можно сразу получить как Строка.


это атавизм :-)

В HTTPЗапрос первым параметром нужно передавать адрес ресурса, в данном случае будет


да, всё заработало именно после того, как убрал домен

Я не вижу корневого элемента


Это верно. Но ошибка была именно в том, что был указан полный путь
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот