Как посмотреть json http запроса который уходит на сервер?

1. hoyo 23.06.23 11:00 Сейчас в теме
Доброго всем дня.
Есть 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", бесполезно
По теме из базы знаний
Найденные решения
5. hoyo 26.06.23 16:10 Сейчас в теме
(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", КлючАПИ) Тогда
		Возврат "";
	Иначе
		Возврат "Не найден ключ АПИ в структуре ответа";
	КонецЕсли;
Иначе
	Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
КонецЕсли;

КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Sashares 34 23.06.23 11:55 Сейчас в теме
(1)
1. Как посмотреть, какой JSON отдаёт 1С серверу?

Установить Fiddler.
2. coollerinc 188 23.06.23 11:17 Сейчас в теме
Тут же пустая строка в первом параметре. Вы передаете пустую строку. Джейсона тут тоже нет

мойHTTPЗапрос.УстановитьТелоИзСтроки("", "UTF-8", ИспользованиеByteOrderMark.Авто);

Или я вопрос не правильно понял?
3. laperuz 46 23.06.23 11:24 Сейчас в теме
Точно в заголовках, не в теле?
Попробуйте так:

Соединение        = Новый 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Запрос);
Показать
5. hoyo 26.06.23 16:10 Сейчас в теме
(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", КлючАПИ) Тогда
		Возврат "";
	Иначе
		Возврат "Не найден ключ АПИ в структуре ответа";
	КонецЕсли;
Иначе
	Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
КонецЕсли;

КонецФункции
Показать
Оставьте свое сообщение

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