Вход | Регистрация


1С:Предприятие ::

Метки: 

Не удается авторизоваться через POST запрос

Я
   Блондинка_
 
04.12.17 - 16:10
Добрый день! Подскажите пожалуйста, что я не так делаю. У меня есть описание запросов по API. Устанавливаю соединение, отправляю запрос на авторизацию, приходит ошибка 404. Ну я понимаю, неверный запрос или неверные параметры авторизации, но почему страница не найдена?!

Соединение=Новый HTTPСоединение(Объект.Адрес,80,,,,30,);
АдресURL="/api/workstation/clients/login"; 
Запрос= Новый HTTPЗапрос();
Запрос.АдресРесурса=АдресURL;
//параметры

Запрос.УстановитьТелоИзСтроки(СтрокаJS);//подготовленная строка в формате JSON

Ответ=Соединение.Получить(Запрос);
 
  Рекламное место пустует
   Lexey_
 
1 - 04.12.17 - 16:12
(0) что в Объект.Адрес?
   Блондинка_
 
2 - 04.12.17 - 16:13
   Блондинка_
 
3 - 04.12.17 - 16:13
Без  http://
   Lexey_
 
4 - 04.12.17 - 16:19
Что в теле ответа?
   Lexey_
 
5 - 04.12.17 - 16:20
Точно нужен гет, а не пост?
   Блондинка_
 
6 - 04.12.17 - 16:24
(5) А это разве не пост запрос? Мне нужен как раз пост, ну вот я и отправляю ему параметры запроса. Или что-то не так?
   Блондинка_
 
7 - 04.12.17 - 16:25
В теле ответа код состояния=404 и соответствие с заголовками об ошибках (дата, статус и какие-то еще параметры)
   Lexey_
 
8 - 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"
}
   Lexey_
 
13 - 04.12.17 - 17:11
(12) а у тебя что в теле?
   PloAl
 
14 - 04.12.17 - 17:13
(12) скорее всего надо урлкодировать значения:
КодироватьСтроку("0952000200",СпособКодированияСтроки.КодировкаURL)
КодироватьСтроку("RMZ1CHbFeN",СпособКодированияСтроки.КодировкаURL)
   PloAl
 
15 - 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);

Перед отправкой в теле запроса (тоже подсмотрела в сети), не помогло(((
   ProgAL
 
18 - 04.12.17 - 17:39
Скачайте приложение Postman. И посмотрите ролики в сети как им пользоваться. Когда получите с помощью вручную набранного тела запроса корректный ответ, поймете что поправить в 1с.
   Вафель
 
19 - 04.12.17 - 17:40
пароль и логин настоящие?
   zippygrill
 
20 - 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.НеИспользовать);



Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует