HTTPСоединение. Отправить GET запрос

1. userzak 15.10.21 16:35 Сейчас в теме
Приветствую коллеги!
Задача: отправить GET запрос используя следующие условия:

/api/0/auth/access_token?user_id={user_id}&user_secret={user_secret}
Метод HTTP GET

Параметры
user_id string Идентификатор клиента
user_secret string Пароль клиента

Ответ
string Маркер доступа апи логина, используемый для авторизации в службах iikoBiz

В качестве примера указан следующий запрос:
https://iiko.biz:9900/api/0/auth/access_token?user_id=client&user_secret=secret

Пробую это сделать так:

Сервер = "iiko.biz:9900";
Ресурс = "/api/0/auth/";

Соед = Новый HTTPСоединение(Сервер, ,log , pas, , , Новый ЗащищенноеСоединениеOpenSSL);

Запр = Новый HTTPЗапрос(Ресурс);
Запр.АдресРесурса = Ресурс ;
Запр.Заголовки.Вставить("user_id", log);
Запр.Заголовки.Вставить("user_secret", pas);

ФайлОтвет = ПолучитьИмяВременногоФайла("txt");
Ответ = Соед.Получить(Запр, ФайлОтвет);
Сообщить("Код состояния: " + Строка(Ответ.КодСостояния));
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.Прочитать(ФайлОтвет, КодировкаТекста.UTF8);
ТекстОтвет = ТекстДок.ПолучитьТекст();
Сообщить(Ответ.КодСостояния);
Сообщить(ТекстОтвет);

в результате должна вернуться строка (токен), а ее нет. Ответ.КодСостояния возвращает 404

Помогите.
По теме из базы знаний
Найденные решения
3. spacecraft 15.10.21 17:10 Сейчас в теме
(1) как вариант:
Сервер = "iiko.biz:9900";
Порт = 9900;
Ресурс = "/api/0/auth/access_token?user_id="+log+"&user_secret="+pas;

Соед = Новый HTTPСоединение(Сервер, Порт, , , , , Новый ЗащищенноеСоединениеOpenSSL);
Запр = Новый HTTPЗапрос(Ресурс);
Ответ = Соед.Получить(Запр);
Результат = Ответ.ПолучитьТелоКакСтроку();
Сообщить(Результат);
Показать
8. spacecraft 18.10.21 11:19 Сейчас в теме
(7) user_id и user_secret нужно не в заголовках передавать, а в строке Ресурс.
См. код в (3).
Ресурс = "/api/0/auth/access_token?user_id="+log+"&user_secret="+pas;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 15.10.21 16:57 Сейчас в теме
(1) для начала здесь:
Сервер = "iiko.biz:9900";
Ресурс = "/api/0/auth/";

Соед = Новый HTTPСоединение(Сервер, ,log , pas, , , Новый ЗащищенноеСоединениеOpenSSL);

Порт не должен быть включен в первый параметр, а должен указываться во втором параметре

Далее Ресурс будет вся оставшаяся строка:
Ресурс = "/api/0/auth/access_token?user_id=client&user_secret=secret"
DenisCh; DJ_Codebase; starik-2005; Sashares; +4 Ответить
3. spacecraft 15.10.21 17:10 Сейчас в теме
(1) как вариант:
Сервер = "iiko.biz:9900";
Порт = 9900;
Ресурс = "/api/0/auth/access_token?user_id="+log+"&user_secret="+pas;

Соед = Новый HTTPСоединение(Сервер, Порт, , , , , Новый ЗащищенноеСоединениеOpenSSL);
Запр = Новый HTTPЗапрос(Ресурс);
Ответ = Соед.Получить(Запр);
Результат = Ответ.ПолучитьТелоКакСтроку();
Сообщить(Результат);
Показать
6. userzak 18.10.21 09:55 Сейчас в теме
(3)
Сервер = "iiko.biz:9900";

только Сервер = "iiko.biz";
Благодарю!
9. spacecraft 18.10.21 11:20 Сейчас в теме
7. userzak 18.10.21 10:46 Сейчас в теме
(3)
Пробую использовать загововки, почему такой код не работает?

Сервер = "iiko.biz";
Порт = 9900;
Ресурс = "/api/0/auth/access_token?user_id=&user_secret=";

Соед = Новый HTTPСоединение(Сервер, Порт, , , , , Новый ЗащищенноеСоединениеOpenSSL);
Запр = Новый HTTPЗапрос(Ресурс);
Запр.Заголовки.Вставить("user_id", log);
Запр.Заголовки.Вставить("user_secret", pas);

Ответ = Соед.Получить(Запр);
Результат = Ответ.ПолучитьТелоКакСтроку();
Сообщить(Результат);
Показать


Возвращает :
{"code":"216","message":"Wrong user name [] or password [].","description":null,"httpStatusCode":400,"uiMessage":null}
8. spacecraft 18.10.21 11:19 Сейчас в теме
(7) user_id и user_secret нужно не в заголовках передавать, а в строке Ресурс.
См. код в (3).
Ресурс = "/api/0/auth/access_token?user_id="+log+"&user_secret="+pas;
4. gybson 15.10.21 18:23 Сейчас в теме
И зачем плодить файлы, которые не удаляете? Получайте тело ответа как строку или поток
baracuda; +1 Ответить
5. DenisCh 17.10.21 07:18 Сейчас в теме
(4) Временные файлы (по идее) должны сами удаляться после завершения сеанса...
Правда, эта идея практически не работает ))
Оставьте свое сообщение

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