Имя: Пароль:
1C
1С v8
Проблема получения GET запроса
0 ArturR
 
07.02.20
15:03
Привет всем!


Пару месяцев назад наладил получение данных по API с одного ресурса. В описании был указан боевой сервер, назовем условно - "blabla.ru", ну и варианты GET запросов.

Создавал соединение:

Соединение = Новый HTTPСоединение("blabla.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Заголовки.Вставить("x-client-key", "Application " + APIкеу);
ТекстHTTPЗапрос = "/v2/Shops/list";
Запрос = Новый HTTPЗапрос(ТекстHTTPЗапрос, Заголовки);
Ответ = Соединение.ВызватьHTTPМетод("GET", Запрос).ПолучитьТелоКакСтроку();

Однако пару дней назад ресурс поменял API и изменил боевой сервер - "blabla.ru/pub".

Когда я создаю соединение и указываю новый сервер, то в свойствах Соединения сервер выглядит "blabla.ru", т.е все что после слеша удалено.

Соединение = Новый HTTPСоединение("blabla.ru/pub",,,,,,Новый ЗащищенноеСоединениеOpenSSL());


И как следствие GET запрос не отрабатывает (ну я так думаю, что из-за этого)

В Postman все четко работает и данные получаются, но там я сразу на вход подаю строку целиком.

Как создать сервер, что бы текст после слеша остался? Может он как-то отдельно добавляется?
1 Lokli
 
07.02.20
15:09
ТекстHTTPЗапрос = "/pub/v2/Shops/list";
2 ArturR
 
07.02.20
15:12
(1)
Пробовал.
В описании API GET запрос выглядит так "/v2/Shops/list", т.е. предполагается, что  "/pub" как-то уже должно быть
3 VKS
 
07.02.20
15:22
а через браузер получается достучаться?
4 ArturR
 
07.02.20
15:34
(3)
Не совсем понимаю.
5 Garykom
 
гуру
07.02.20
15:35
(2) У тебя путаница не может быть сервера "blabla.ru/pub" - сервер всегда до "/" и он "blabla.ru" все прочее это строка параметров в URL.
Т.е. (1) надо.

Да там может быть что на "blabla.ru" висит некий промежуточный сервер (nginx например) который отлавливает "/pub/..." и редиректит на некий другой сервер но это глубоко пофиг
6 Garykom
 
гуру
07.02.20
15:37
(5)+ Может быть сервер стать "pub.blabla.ru" это типа поддомен добавили
7 Cyberhawk
 
07.02.20
15:37
(2) "В описании API GET запрос выглядит так "/v2/Shops/list"" // Ну тупи - в описании апи перечислены динамические, относительные части. Полный УРЛ в 1С указываемый - это все что после первоно одиночного слэша в URI
8 ArturR
 
07.02.20
15:42
Это цитата из описания API

"Базовый URL боевого сервера: https://api.aqsi.ru/pub";
9 Garykom
 
гуру
07.02.20
15:49
(8) Там про v1 написано а не про v2
10 ДенисЧ
 
07.02.20
15:50
(8) Базовый урл - это неизменяемая часть. Адрес сервера, к которому подключаться надо -  https://api.aqsi.ru
Адрес ресурса - /pub/+ твой урл из апи.
Останавливайся тупить... Все понимают, что вечер пятницы, но всё же.
11 pechkin
 
07.02.20
15:53
адрес сервера и  базовый урл - разные вещи
12 pechkin
 
07.02.20
15:54
базовый урл = адрес сервера + неизменная часть пути
13 Deon
 
07.02.20
15:56
(9) И везде POST, а не GET
14 Lokli
 
07.02.20
16:03
(13) Не везде... Там разные типы запросов.
15 ArturR
 
07.02.20
16:19
(8)(9)(10)
Спасибо.
Вроде заработало.
16 Сияющий в темноте
 
07.02.20
18:51
термин базовый адрес идет от тага BASE в html
в 1с такого нет.

хотя нет,http сервис имеет базовую часть адреса и параметризуемую.
базовая записывается относительно корня базы 1с и перед ней hs

адрес же сервера это префикс типа соединения http://
днс имя хоста или айпи адрес
даоеточие и номер порта,если не стандартный

никакого пути в адресе нет,так как адрес может быть не только для http протокола.

путь же передается уже внутри запроса,когда соединение установлено в первой строке.
17 ArturR
 
08.02.20
09:35
(16)
Спасибо, за пояснение.