HTTTP запрос и JSON

1. Snus71 233 18.10.18 12:40 Сейчас в теме
Уважаемые, пытаюсь законектиться к 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) заглавную страницу сайта
Что делать и кто виноват ?
Найденные решения
7. spacecraft 18.10.18 18:15 Сейчас в теме
(1)
Запрос = Новый HTTPЗапрос("https://envycrm.com/crm/api/v1/client/list/?api_key=**********************************");

в запросе домент указывать не нужно. Просто Новый HTTPЗапрос("/crm/api/v1/client/list/?api_key=**********************************");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 18.10.18 18:15 Сейчас в теме
(1)
Запрос = Новый HTTPЗапрос("https://envycrm.com/crm/api/v1/client/list/?api_key=**********************************");

в запросе домент указывать не нужно. Просто Новый HTTPЗапрос("/crm/api/v1/client/list/?api_key=**********************************");
10. Snus71 233 18.10.18 22:26 Сейчас в теме
(7) стало интреснее. Теперь
Вернули код 500
Результат: {"status_code":500,"message":"Неверный request"}

Достучался, по-крайней мере
Теперь ему запрос не нравится
12. spacecraft 18.10.18 22:41 Сейчас в теме
(10) по описанию сервиса указывать логин и пароль в соединении не нужно. Достаточно api_key.
13. Snus71 233 18.10.18 23:18 Сейчас в теме
(12) это да, я его вписал "на всякий случай" :-)
11. Snus71 233 18.10.18 22:29 Сейчас в теме
(7) ДА ! Это решение. Спасибо
По-крайней мере GEt пошел
2. user623969_dusa 18.10.18 14:54 Сейчас в теме
как вариант можно при создании запроса указать заголовки
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
ЗаголовокHTTP.Вставить("Content-Charset", "utf-8");
..
HTTPЗапрос = Новый HTTPЗапрос(Ресурс,ЗаголовокHTTP);
5. Snus71 233 18.10.18 17:14 Сейчас в теме
(2)
как вариант можно при создании запроса указать заголовки


тоже самое
3. tvm 18.10.18 15:04 Сейчас в теме
а не из 1С если обратиться к этому сервису? что возвращается
4. Snus71 233 18.10.18 17:09 Сейчас в теме
а не из 1С если обратиться к этому сервису? что возвращается


не из 1С - это откуда ?
6. tvm 18.10.18 17:21 Сейчас в теме
(4) какой-нить тестировщик SoapUI/fidler или что-то подобное
8. DarkUser 18.10.18 21:10 Сейчас в теме
Возможно, кроме указания SSL соединения надо ещё и сертификат указать.
9. Snus71 233 18.10.18 22:20 Сейчас в теме
(8) Ни звука про сертификат у них в описании api нет
Оставьте свое сообщение

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