Имя: Пароль:
1C
1С v8
Как получить полный URL из HTTP-запроса и HTTP-соединения?
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
(0)

Для чайников

https://github.com/vbondarevsky/Connector
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