| 
    
            
         
         | 
    
  | 
Не удается авторизоваться через POST запрос | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Блондинка_    
     04.12.17 
            ✎
    16:10 
 | 
         
        Добрый день! Подскажите пожалуйста, что я не так делаю. У меня есть описание запросов по API. Устанавливаю соединение, отправляю запрос на авторизацию, приходит ошибка 404. Ну я понимаю, неверный запрос или неверные параметры авторизации, но почему страница не найдена?!
 
        Соединение=Новый HTTPСоединение(Объект.Адрес,80,,,,30,); АдресURL="/api/workstation/clients/login"; Запрос= Новый HTTPЗапрос(); Запрос.АдресРесурса=АдресURL; //параметры Запрос.УстановитьТелоИзСтроки(СтрокаJS); //подготовленная строка в формате JSON Ответ=Соединение.Получить(Запрос);  | 
|||
| 
    1
    
        Lexey_    
     04.12.17 
            ✎
    16:12 
 | 
         
        (0) что в Объект.Адрес?     
         | 
|||
| 
    2
    
        Блондинка_    
     04.12.17 
            ✎
    16:13 
 | 
||||
| 
    3
    
        Блондинка_    
     04.12.17 
            ✎
    16:13 
 | 
         
        Без  http://     
         | 
|||
| 
    4
    
        Lexey_    
     04.12.17 
            ✎
    16:19 
 | 
         
        Что в теле ответа?     
         | 
|||
| 
    5
    
        Lexey_    
     04.12.17 
            ✎
    16:20 
 | 
         
        Точно нужен гет, а не пост?     
         | 
|||
| 
    6
    
        Блондинка_    
     04.12.17 
            ✎
    16:24 
 | 
         
        (5) А это разве не пост запрос? Мне нужен как раз пост, ну вот я и отправляю ему параметры запроса. Или что-то не так?     
         | 
|||
| 
    7
    
        Блондинка_    
     04.12.17 
            ✎
    16:25 
 | 
         
        В теле ответа код состояния=404 и соответствие с заголовками об ошибках (дата, статус и какие-то еще параметры)     
         | 
|||
| 
    8
    
        Lexey_    
     04.12.17 
            ✎
    16:27 
 | 
         
        (6) это не пост     
         | 
|||
| 
    9
    
        Юрий Лазаренко    
     04.12.17 
            ✎
    16:30 
 | 
         
        Пост это не Получить, а ОтправитьДляОбработки в
 
        Ответ=Соединение.Получить(Запрос);  | 
|||
| 
    10
    
        Блондинка_    
     04.12.17 
            ✎
    16:40 
 | 
         
        (8) (9) Ой блииииин) Ну я и туплю)
 
        Спасибо огромное! Я поналепила кусков из теории, и даже не заметила что взяла пример сначала гет запроса  | 
|||
| 
    11
    
        Блондинка_    
     04.12.17 
            ✎
    16:44 
 | 
         
        Все равно какая-то хрень, теперь ошибка 501
 
        501 Not Implemented  | 
|||
| 
    12
    
        Блондинка_    
     04.12.17 
            ✎
    17:01 
 | 
         
        {"result":{},"error":{"code":"501","message":"784: unexpected token at '?[{\"phone\":\"0952000200\",\"password\":\"RMZ1CHbFeN\"}]'"}}
 
        Не хватает каких-то фигурных или квадратных скобок в запросе (нагуглила)? Так у меня в описании указано что в теле запроса должно быть { "phone":"0952000200", "password":"RMZ1CHbFeN" }  | 
|||
| 
    13
    
        Lexey_    
     04.12.17 
            ✎
    17:11 
 | 
         
        (12) а у тебя что в теле?     
         | 
|||
| 
    14
    
        PloAl    
     04.12.17 
            ✎
    17:13 
 | 
         
        (12) скорее всего надо урлкодировать значения:
 
        КодироватьСтроку("0952000200",СпособКодированияСтроки.КодировкаURL) КодироватьСтроку("RMZ1CHbFeN",СпособКодированияСтроки.КодировкаURL)  | 
|||
| 
    15
    
        PloAl    
     04.12.17 
            ✎
    17:17 
 | 
         
        да и от пароля скорее всего надо хеш получать, вот только какой, примерно так
 
        Функция МД5(П) Экспорт Хеш = Новый ХешированиеДанных(ХешФункция.MD5); Хеш.Добавить(П); Возврат Хеш.ХешСумма; КонецФункции  | 
|||
| 
    16
    
        Блондинка_    
     04.12.17 
            ✎
    17:25 
 | 
         
        (13) Пробовала и вот так {"phone":"0952000200","password":"RMZ1CHbFeN"}
 
        и вот так в теле [{"phone":"0952000200","password":"RMZ1CHbFeN"}] (14) Чего-то не помогает.. А мне кажется или он на кавычки "ругается"?  | 
|||
| 
    17
    
        Блондинка_    
     04.12.17 
            ✎
    17:28 
 | 
         
        Пробовала также 
 
        СтрокаJSON = КодироватьСтроку(СтрокаJS, СпособКодированияСтроки.КодировкаURL); Перед отправкой в теле запроса (тоже подсмотрела в сети), не помогло(((  | 
|||
| 
    18
    
        ProgAL    
     04.12.17 
            ✎
    17:39 
 | 
         
        Скачайте приложение Postman. И посмотрите ролики в сети как им пользоваться. Когда получите с помощью вручную набранного тела запроса корректный ответ, поймете что поправить в 1с.     
         | 
|||
| 
    19
    
        Вафель    
     04.12.17 
            ✎
    17:40 
 | 
         
        пароль и логин настоящие?     
         | 
|||
| 
    20
    
        zippygrill    
     05.12.17 
            ✎
    01:12 
 | 
         
        (0) Зайди сюда https://www.hurl.it/ и тестирую сначала что передавать..     
         | 
|||
| 
    21
    
        Блондинка_    
     05.12.17 
            ✎
    10:45 
 | 
         
        (20) тестирую, но все равно выходят ошибки, возможно потому что  сайт отправляет тело запроса как phone=0952000200&password=RMZ1CHbFeN а нужно через запятую, но как это поправить? 
 
        (19) Здесь нет, поправила пару символов, а вообще надеюсь что действующие) Если бы и нет, была бы ошибка авторизации  | 
|||
| 
    22
    
        Блондинка_    
     05.12.17 
            ✎
    13:45 
 | 
         
        Ура! Разобралась!) Спасибо всем за помощь.
 
        Не хватало заголовка Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); А также при установке строки в формате JSON нужно было ее форматировать Запрос.УстановитьТелоИзСтроки(СтрокаJS, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |