Как посмотреть json http запроса который уходит на сервер?
Доброго всем дня.
Есть API Hardware Inspector (если это кому-то о чём-то говорит), к которому надо подключиться. Для этого, сначала для авторизации надо на определённый адрес отправить PUT запрос и в заголовках передать параметры:
{"licenseKeepalive": 1800,
"pHash": "",
"pOriginal": "",
"sessionKeepalive": 1800,
"useLicense": false,
"userID": 1,
"userLogin": ""}
Делаю так:
В ответ ругается что неправильный формат JSON файла. В связи с чем два вопроса:
1. Как посмотреть, какой JSON отдаёт 1С серверу?
2. Как правильно указывать параметры заголовков, которые не строкового типа? "3601" или 3601, без кавычек? Я пробовал и так и так, ругается. Параметр булевого типа также пробовал и Ложь и "false", бесполезно
Есть API Hardware Inspector (если это кому-то о чём-то говорит), к которому надо подключиться. Для этого, сначала для авторизации надо на определённый адрес отправить PUT запрос и в заголовках передать параметры:
{"licenseKeepalive": 1800,
"pHash": "",
"pOriginal": "",
"sessionKeepalive": 1800,
"useLicense": false,
"userID": 1,
"userLogin": ""}
Делаю так:
Соединение = Новый HTTPСоединение("айпишник сервера",8080);
мойHTTPЗапрос = Новый HTTPЗапрос("/api/v1/session");
Заголовки = Новый Соответствие;
Заголовки.Вставить("licenseKeepalive", 1801);
Заголовки.Вставить("pHash", "");
Заголовки.Вставить("pOriginal", "myparol");
Заголовки.Вставить("sessionKeepalive", 3601);
Заголовки.Вставить("useLicense", ложь);
Заголовки.Вставить("userID", 1234);
Заголовки.Вставить("userLogin", "mylogin");
Заголовки.Вставить("Content-Type", "application/json");
мойHTTPЗапрос.Заголовки = Заголовки;
мойHTTPЗапрос.УстановитьТелоИзСтроки("", "UTF-8", ИспользованиеByteOrderMark.Авто);
Результат = Соединение.ВызватьHTTPМетод("PUT",мойHTTPЗапрос);
ПоказатьВ ответ ругается что неправильный формат JSON файла. В связи с чем два вопроса:
1. Как посмотреть, какой JSON отдаёт 1С серверу?
2. Как правильно указывать параметры заголовков, которые не строкового типа? "3601" или 3601, без кавычек? Я пробовал и так и так, ругается. Параметр булевого типа также пробовал и Ложь и "false", бесполезно
По теме из базы знаний
- Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"
- Обмен большими данными между клиентом и сервером
- Как должна выглядеть правильная интеграция. Использование Mule ESB и RabbitMQ с 1С
- Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST
- Как приручить драконов. История построения экосистемы на основе 1С
Найденные решения
(4) Спасибо за наводку. В теле надо было передавать, конечно, у меня опыта работы с http маловато, перепутал. Вот так работает:
Функция Авторизация2(КлючАПИ)
Соединение = Новый HTTPСоединение("my_ip",8080);
мойHTTPЗапрос = Новый HTTPЗапрос("/api/v1/session");
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Текстзапроса = "
|{""licenseKeepalive"": 1801,
|""pHash"": """",
|""pOriginal"": ""myparol"",
|""sessionKeepalive"": 3601,
|""useLicense"": false,
|""userID"": 123,
|""userLogin"": ""mylogin"" }";
мойHTTPЗапрос.Заголовки = Заголовки;
мойHTTPЗапрос.УстановитьТелоИзСтроки(Текстзапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
Результат = Соединение.ВызватьHTTPМетод("PUT",мойHTTPЗапрос);
Если Результат.КодСостояния = 200 Тогда
Джейсон = ОбработатьJSON(Результат.ПолучитьТелоКакСтроку());
Если Джейсон.Свойство("hwiAPIKey", КлючАПИ) Тогда
Возврат "";
Иначе
Возврат "Не найден ключ АПИ в структуре ответа";
КонецЕсли;
Иначе
Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
КонецЕсли;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Точно в заголовках, не в теле?
Попробуйте так:
Попробуйте так:
Соединение = Новый HTTPСоединение("айпишник сервера",8080);
мойHTTPЗапрос = Новый HTTPЗапрос("/api/v1/session");
мойHTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
Заголовки = Новый Соответствие;
Заголовки.Вставить("licenseKeepalive", 1801);
Заголовки.Вставить("pHash", "");
Заголовки.Вставить("pOriginal", "myparol");
Заголовки.Вставить("sessionKeepalive", 3601);
Заголовки.Вставить("useLicense", ложь);
Заголовки.Вставить("userID", 1234);
Заголовки.Вставить("userLogin", "mylogin");
ЗаписьJSON = Новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Заголовки);
ТелоЗапроса = ЗаписьJSON.Закрыть();
мойHTTPЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса, "UTF-8", ИспользованиеByteOrderMark.Авто);
Результат = Соединение.ВызватьHTTPМетод("PUT",мойHTTPЗапрос);
Показать
(4) Спасибо за наводку. В теле надо было передавать, конечно, у меня опыта работы с http маловато, перепутал. Вот так работает:
Функция Авторизация2(КлючАПИ)
Соединение = Новый HTTPСоединение("my_ip",8080);
мойHTTPЗапрос = Новый HTTPЗапрос("/api/v1/session");
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Текстзапроса = "
|{""licenseKeepalive"": 1801,
|""pHash"": """",
|""pOriginal"": ""myparol"",
|""sessionKeepalive"": 3601,
|""useLicense"": false,
|""userID"": 123,
|""userLogin"": ""mylogin"" }";
мойHTTPЗапрос.Заголовки = Заголовки;
мойHTTPЗапрос.УстановитьТелоИзСтроки(Текстзапроса, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
Результат = Соединение.ВызватьHTTPМетод("PUT",мойHTTPЗапрос);
Если Результат.КодСостояния = 200 Тогда
Джейсон = ОбработатьJSON(Результат.ПолучитьТелоКакСтроку());
Если Джейсон.Свойство("hwiAPIKey", КлючАПИ) Тогда
Возврат "";
Иначе
Возврат "Не найден ключ АПИ в структуре ответа";
КонецЕсли;
Иначе
Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
КонецЕсли;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот