Имя: Пароль:
1C
1С v8
POST Запрос выдающий 422
0 AgniiISO
 
13.12.19
06:22
Доброго дня! Составляю тут запрос для выгрузки данных и получаю от сервера 422 то бишь неправильный запрос, на моменте когда у меня уже есть тело запроса я проверяю, и выглядит все нормально, на параметры хттп соединения не грешу, с теми же я гет получал и все нормально было, а тут с ошибками, сервер выдает описание что я не передал 3 обязательных параметра код фамилия и емаил, оставил только их и все равно говорит что я их не передаю, может на моменте отправки запроса делаю не так? а то мой первый пост запрос, подскажите добры люди
      
ssl = Новый ЗащищенноеСоединениеOpenSSL;    
    // Подключаемся к сайту.
    Соединение = Новый HTTPСоединение(
    "сервер",// сервер (хост)
    443, // порт, по умолчанию для http используется 80, для https 443
    "логин", // пользователь для доступа к серверу (если он есть)
    "пароль", // пароль для доступа к серверу (если он есть)
    , // здесь указывается прокси, если он есть
    , // таймаут в секундах, 0 или пусто - не устанавливать
    ssl// защищенное соединение, если используется https
    );
    
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Connection", "keep-alive");
    Заголовки.Вставить("Accept", "application/json");
    
    //Старое формирование запроса
    //Запрос.УстановитьТелоИзСтроки("&req=test");
    //ТелоЗапроса = //"""id"": 59,"+
    ////"""dealer_id"": 124,"+
    //"{""code"": ""4064"","+Символы.ПС +
    //"""first_name"": ""Стас"","+Символы.ПС +
    //"""middle_name"": ""Алексеевич"","+Символы.ПС +
    //"""last_name"": ""Мельников"","+  Символы.ПС +
    //"""email"": ""test1231@test.ru"","+  Символы.ПС +
    //"""position_list"": [9],"+ Символы.ПС +
    //"""birthday"": null,"+ Символы.ПС +
    //"""employment"": ""02.04.2001""}";
    
    Массив = Новый Массив;
    Массив.Добавить(9);
    
        //новое формирование запроса
    JSONзапрос = Новый Соответствие;
    JSONзапрос.Вставить("code", "4066");
    JSONзапрос.Вставить("first_name", "Стас");
    //JSONзапрос.Вставить("middle_name", "Алексеевич");
    //JSONзапрос.Вставить("last_name", "Мельников");
    JSONзапрос.Вставить("email", "test1231@test.ru");
    //JSONзапрос.Вставить("position_list", Массив);
    //JSONзапрос.Вставить("birthday", "02.04.1999");
    //JSONзапрос.Вставить("employment", "02.04.2001");

    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, JSONзапрос);
    ТелоЗапроса = ЗаписьJSON.Закрыть();
    
    Запрос = Новый HTTPЗапрос("api/manager", Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);

    
    
    Запрос.ПолучитьТелоКакСтроку();
    Запрос.ПолучитьТелоКакПоток();
    Результат = Соединение.ОтправитьДляОбработки(Запрос);
    Сообщить("Передача данных: " + Результат.КодСостояния);
    
    JSON = Новый ЧтениеJSON;
    JSON.УстановитьСтроку(Результат.ПолучитьТелоКакСтроку());
    ТекстОтветаСоответствие = ПрочитатьJSON(JSON, Ложь);
    //Результат.Заголовки
    Сообщить("Тело результата: " + ТекстОтветаСоответствие + Символы.ПС + "Начинаем синхронизацию");
1 DrWatson
 
13.12.19
08:50
Еще параметры могут быть в строке запроса и в заголовке http. А где Ваш сервер ищет параметры?
2 Дык ё
 
13.12.19
09:31
(0) > на параметры хттп соединения не грешу

а зря. как минимум тип содержимого не указан
3 AgniiISO
 
13.12.19
09:49
(2) Уточните какой параметр)
4 AgniiISO
 
13.12.19
09:50
(1) Так я вроде и jsonом и заполняю запрос, разве нет? Где именно для него должны быть параметры или как? не совсем понял вопрос
5 Сияющий в темноте
 
14.12.19
00:31
а Content Type application json где ?
6 AgniiISO
 
16.12.19
04:24
(5) Точно, вот это надо было, спасибо
7 AgniiISO
 
16.12.19
04:25
Заголовки.Вставить("Accept", "application/json");
Заменил вот это типом контента (5)
И норм
Закон Брукера: Даже маленькая практика стоит большой теории.