Доброго всем дня.
Есть API Hardware Inspector (если это кому-то о чём-то говорит), к которому надо подключиться. Для этого, сначала для авторизации надо на определённый адрес отправить PUT запрос и в заголовках передать параметры:

{"licenseKeepalive": 1800,
"pHash": "",
"pOriginal": "",
"sessionKeepalive": 1800,
"useLicense": false,
"userID": 1,
"userLogin": ""}

Делаю так:

```1c
    Соединение = Новый 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", бесполезно
---
Спасибо за наводку. В теле надо было передавать, конечно, у меня опыта работы с http маловато, перепутал. Вот так работает:

```1c
    Функция Авторизация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", КлючАПИ) Тогда
    Возврат ";
    Иначе
    Возврат "Не найден ключ АПИ в структуре ответа";
    КонецЕсли;
    Иначе
    Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
    КонецЕсли;

    КонецФункции
```
---
1. Как посмотреть, какой JSON отдаёт 1С серверу?
Установить Fiddler.
---
Тут же пустая строка в первом параметре. Вы передаете пустую строку. Джейсона тут тоже нет

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

Или я вопрос не правильно понял?
---
Точно в заголовках, не в теле?
Попробуйте так:

```1c
    Соединение = Новый 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Запрос);
```
---
Спасибо за наводку. В теле надо было передавать, конечно, у меня опыта работы с http маловато, перепутал. Вот так работает:

```1c
    Функция Авторизация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", КлючАПИ) Тогда
    Возврат ";
    Иначе
    Возврат "Не найден ключ АПИ в структуре ответа";
    КонецЕсли;
    Иначе
    Возврат Строка(Результат.КодСостояния) + Результат.ПолучитьТелоКакСтроку();
    КонецЕсли;

    КонецФункции
```