|
|
Как получить полный URL из HTTP-запроса и HTTP-соединения?
Страждущий, Garykom, Bad_Aleks, Fragster, АгентБезопаснойНацио, zva, San787, Builder, Гипервизор, phabeZ, RVN, Fedor-1971, ДенисСмирнов, rozer76, vbus, paramedic, b_ru, TTimur, Климов Сергей, arsik, Мультук, 1cVandal, Web00001, reg0303, hunter76, mTema32, obs191, Sabron, evgen48, Доминошник, SleepyHead, MWWRuza, Многолетний Апельсин, Anton1307, RomanYS, sikuda, VladZ, Zombi, denk32, Кир Пластелинин, maxar, trk415e76, Волшебник, ads55, reloc, Tarlich, trad, Ненавижу 1С, Vstur, Amfiaray, Timon1405, integer, Hmster
| ☑ |
|
0
SleepyHead
гуру
17.03.26
✎
09:42
|
Добрый день. В этих запросах я полный чайник.
Требуется наладить взаимодействие по API с неким сервером.
Создание HTTP-соединения и HTTP-запроса освоил. Теперь в заголовки нужно добавить токен, который формируется по требованиям:
"При каждом запросе в HTTP-заголовке указать Authorization строку вида: Bearer X.Z, где X - часть X исходного ключа, а Z - строка, сгенерированная по следующему алгоритму:
Построить строку S вида: C.Y.D.U, где C - некая соль (строка) из обработки-загрузчика (сервер ее знает), Y - часть Y исходного ключа, D - текущая дата запроса в формате YYYY-MM-DD, U - полный УРЛ запроса к АПИ
Выполнить хэширование строки S с помощью алгоритма SHA-256. Результатом будет искомое значение Z."
Итак, я создаю HTTP-соединение, указываю адрес сервера, порт, и прочие параметры.
Далее создаю HTTP-запрос, в заголовки которого нужно вставить этот токен.
Но не понимаю, как получить ПОЛНЫЙ URL в этот момент.
Методов объектов HTTP-соединения и HTTP-запроса для этого не вижу.
Прошу помощи специалистов.
|
|
|
1
Мультук
гуру
17.03.26
✎
09:48
|
|
|
|
2
SleepyHead
гуру
17.03.26
✎
09:50
|
(1) Спасибо, это я читал и на инфостарте. Но там ответа на мой вопрос нет.
|
|
|
3
evgen48
17.03.26
✎
09:50
|
Все должно быть указано в документации к API. В Соединении указываешь адрес API, например
HTTPСоединение("sandbox.pay.yandex.ru/api/merchant", 443,,,,120,новый ЗащищенноеСоединениеOpenSSL,Ложь);
в запросе адрес ресурса, например
HTTPЗапрос("/v1/orders/{order_id}",Заголовки);
Токен указываешь в заголовках
|
|
|
4
Мультук
гуру
17.03.26
✎
09:55
|
(3)
И давно ли 1С (номер версии, пожалуйста) так умеет ?
В том смысле "так" -- открывать соединение к такому имени сервера.
HTTPСоединение("sandbox.pay.yandex.ru/api/merchant", 443,,,,120,новый ЗащищенноеСоединениеOpenSSL,Ложь);
|
|
|
5
SleepyHead
гуру
17.03.26
✎
09:57
|
(4) Вопрос не в этом. А как получить итоговый URL, когда уже создал соединение и HTTP_запрос ?
|
|
|
6
Мультук
гуру
17.03.26
✎
10:02
|
(5)
1) В документации никаких примеров ?
2) Служба поддержки молчит как рыба об лёд ?
3) Что такое итоговый урл ?
4) Если поддержка молчит, а документацию писали злобные буратины, я думаю, стоит пуститься в эксперименты а-ля
ИмяСервера = "server.ru";
УрлЗапроса = "/v1/orders/getall";
ПолныйУрлЗапроса = "http://" + ИмяСервера + УрлЗапроса;
ПолныйУрлЗапроса2 = ИмяСервера + УрлЗапроса;
ПолныйУрлЗапроса3 = УрлЗапроса;
|
|
|
7
evgen48
17.03.26
✎
10:06
|
(4) да, лан) я просто как пример, я не из 1с кода копировал, а просто адреса из документации)
|
|
|
8
SleepyHead
гуру
17.03.26
✎
10:06
|
(6) В техподдержке коллеги, для которых это настолько очевидно, что и упоминать не стоит. А я - тупой 1сник ))
Проявляю настойчивость.
|
|
|
9
SleepyHead
гуру
17.03.26
✎
10:10
|
Ну вот, придется создавать вручную. Коллеги ответили, как должно быть на ИХ сервере
"https://" + ИмяСервера + "/api/" + Метод + Параметры
соединяем через "/"
Но жаль, что нет типовых методов получения URL
|
|
|
10
Garykom
гуру
17.03.26
✎
10:28
|
(5) собрать самому
там ничего сложного нет
начать со схемы
|
|
|
11
Garykom
гуру
17.03.26
✎
10:28
|
(9) эмм есть, в БСП
|
|
|
12
SleepyHead
гуру
17.03.26
✎
10:50
|
(11) есть точнее наводка?
|
|
|
13
АгентБезопасной Нацио
17.03.26
✎
11:29
|
(12) а не проще самому? ведь одна строка...
"http"+?(Соедиение.ЗащищенноеСоединение<>Неопределено,"s","")+"://"+Соединение.СЕрвер+"/"+Запрос.АдресРесурса
|
|
|
14
Garykom
гуру
17.03.26
✎
11:59
|
|
|