Имя: Пароль:
1C
1С v8
Символ $ в адресе запроса get HTTP
0 Oldman06
 
18.11.22
14:58
Собственно, вопрос в заголовке темы. Как правильно сформировать get-запрос в этом случае? Выполняю запрос просто в строке браузера - получаю ответ. Символ $ при этом кодируется в '%24'. Как только не пробовал в коде 1С, и менял на '%24', и кодировал функцией КодироватьСтроку - получаю ошибку 404.
1 arsik
 
гуру
18.11.22
15:07
Ну так это же параметры гет запроса
2 Kassern
 
18.11.22
15:09
(0) КодироватьСтроку() вам в помощь
3 ass1c
 
18.11.22
15:15
Пример покажи get Запроса. Какой сервис дергаешь - 1с-ный или внешний какой? Без $ работает?  

http://Сервер/База/hs/URL/Метод/$МойПара$метр - у меня так отрабатывает отлично, параметр передается.
4 Oldman06
 
18.11.22
15:27
Вот пример строки адреса. Только ресурс доступен в VPN. Но, поверьте, в браузере он отрабатывает.
http://b2b-demo.n3health.ru/nsi/fhir/term/ValueSet/1.2.643.5.1.13.13.11.1066/$versions?_format=json

Соединение = Новый HTTPСоединение(
"b2b-demo.n3health.ru/nsi/fhir/term",
80, , , ,
20
);    
ЗапросHTTP = Новый HTTPЗапрос("/ValueSet/1.2.643.5.1.13.13.11.1066/$versions?_format=json");
Ответ = Соединение.Получить(ЗапросHTTP);

При этом Ответ.КодСостояния = 404
(2) И не важно, кодирую я строку функцией КодироватьСтроку или нет.
5 Kassern
 
18.11.22
15:29
(4) В HTTPСоединение укажите просто b2b-demo.n3health.ru
В запросе "/nsi/fhir/term/ValueSet/1.2.643.5.1.13.13.11.1066/$versions?_format=json"
6 Kassern
 
18.11.22
15:29
И лучше строку кодировать в урл на всякий случай
7 Oldman06
 
18.11.22
15:31
(5) Сейчас попробую. Но дело в том, что там есть ресурсы без символа $ в адресе. И они в таком раскладе работают без проблем.
8 Oldman06
 
18.11.22
15:34
(5) Но, Вы оказались правы! Спасибо. Мне это не пришло в голову.
9 oleg_km
 
18.11.22
15:44
Да потому что все что идет до первого слеша - это имя хоста. И его указывают в ХТТПСоединении. А все остальное - это путь к ресурсу с параметрами, и его уже указывают в ХТТПЗАпрос. А произвольно разделять УРИ на часть, которую указать в ХТТПСоединение, а какую в ХТТПЗапросе нельзя.