Имя: Пароль:
1C
1С v8
http запрос 1с
0 lite777
 
16.11.22
16:06
Здравствуйте , в базе 1 создал http сервис с корневым url hs1 , в нем шаблон с шаблоном /sh1 c get методом ,
через браузер все работате -http://localhost/InfoBase1/hs/hs1/sh1/  ,
а когда пытаюсь подключиться програмно из базы2- пишет Ошибка работы с Интернет:  Couldn't resolve host name

    HTTPСоединение = Новый HTTPСоединение( "http://localhost/InfoBase1",80,"user","1" , ,   , Новый ЗащищенноеСоединениеOpenSSL(), Ложь);
        
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "application/json; charset=UTF-8");
    Заголовки.Вставить("Authorization", "Basic dXNlcjox" );  //логин:пароль в бэйс64
        
  
        HTTPЗапрос = Новый HTTPЗапрос("/hs/hs1/sh1/",Заголовки);
        Тело=ЗаписьJSON1()  ;
    
    HttpЗапрос.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    РезультатВыполненияЗапроса = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
1 lite777
 
16.11.22
16:12
Есть примеры подключения к http сервисам 1с из 1с ?
2 boozin
 
16.11.22
16:35
Заголовки = Новый Соответствие();
Заголовки.Вставить("Token", Token);

Прокси =  Новый ИнтернетПрокси;
ssl1 = Новый ЗащищенноеСоединениеOpenSSL();
Соединение = Новый HTTPСоединение("адрес публикации без www.ru", 443,"Логин","Пароль",,, ssl1);
    
ПутьЗапроса = "/Публикация/hs/КорневойURL/Шаблон/"";
Запрос = Новый HTTPЗапрос(ПутьЗапроса, Заголовки);
Ответ = Соединение.ВызватьHTTPМетод("GET", Запрос);
ДанныеСтрокой = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
3 lamme
 
16.11.22
16:35
а у тебя сервер и твой комп, откуда вызываешь http Запрос - один и тот же?
4 boozin
 
16.11.22
16:40
"адрес публикации без www" и без "http://"   :)
5 boozin
 
16.11.22
16:41
В твоем случае наверное: localhost/InfoBase1
6 lite777
 
16.11.22
16:42
(3) Да
7 lite777
 
16.11.22
16:44
(2) Спасибо попробую)
8 lite777
 
16.11.22
16:48
Заголовки.Вставить("Token", Token);  Это что ?
9 lamme
 
16.11.22
16:53
(6)
просто мне кажется - там не через localhost/InfoBase1 надо обращаться.
но это кажется только
сильно не уверен
10 lamme
 
16.11.22
16:53
(8)
это передача токена авторизации в заголовке
11 lite777
 
16.11.22
16:57
(10) Мне это нужно ?
12 lamme
 
16.11.22
16:58
это один из вариантов составления запроса и взаимодействия с сервером
13 boozin
 
16.11.22
16:59
(11) Ты пример просил. это не обязательно :)
14 lite777
 
16.11.22
17:03
(13) Спасибо покопаю еще завтра, если есть примеры кидайте еще сюда)
15 ass1c
 
16.11.22
17:17
Попробуй без указания "ЗащищенноеСоединениеOpenSSL", у меня все http соединения с данным параметром не работают при указании. Имя сервера "localhost" (без указания базы, указание названия базы публикации идет уже в HTTPЗапрос) (ну или на чем ты публикацию делал)
            

HTTP = Новый HTTPСоединение("localhost"
                , 80
                , "user"
                , "1"
                ,
                ,
                ,
                , );
16 lite777
 
17.11.22
08:44
1- порт 443 или 80  ?, 2- Ответ = Соединение.ВызватьHTTPМетод("GET", Запрос); , get -это имя http метода ?
17 lite777
 
17.11.22
08:52
Хелп ! Есть примеры товарищи)
18 Галахад
 
гуру
17.11.22
08:55
(17) Ты хоть пробовал?
19 lite777
 
17.11.22
08:57
Счас пишет "не могу установить соединение", пробовал и так и так

    HTTPСоединение = Новый HTTPСоединение( "localhost/InfoBase1",443,"user","1" , ,   , Новый ЗащищенноеСоединениеOpenSSL(), Ложь);
    //HTTPСоединение = Новый HTTPСоединение( "localhost/InfoBase1",80,"user","1" , ,   , , );

        
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "application/json; charset=UTF-8");
    //    Заголовки.Вставить("Authorization", "Basic dXNlcjox" );  //логин:пароль в бэйс64
        
  //    HTTPЗапрос = Новый HTTPЗапрос("/hs/hs1/Get/",Заголовки);    
        HTTPЗапрос = Новый HTTPЗапрос("/InfoBase1/hs/hs1/sh1/",Заголовки); //ПутьЗапроса = "/Публикация/hs/КорневойURL/Шаблон/"";

    //    HTTPЗапрос = Новый HTTPЗапрос("/hs/hs1/sh1/",Заголовки);
        
        Ответ = HTTPСоединение.ВызватьHTTPМетод("Metod1", HTTPЗапрос);
    //    Ответ = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);

        ДанныеСтрокой = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
        Сообщить(ДанныеСтрокой) ;
20 Галахад
 
гуру
17.11.22
09:01
(19) Адрес публикации - локал хост без базы.
21 boozin
 
17.11.22
10:08
"Ответ = HTTPСоединение.ВызватьHTTPМетод("Metod1", HTTPЗапрос);" - не "Metod1", именно методы запроса "GET", "PUT" и т.д.
22 lite777
 
17.11.22
10:25
(21) А, спс ,
23 kostyan29
 
17.11.22
12:57
HTTPСоединение = Новый HTTPСоединение("localhost",,Логин,Пароль);
    HTTPЗапрос = Новый HTTPЗапрос("/InfoBase1/hs/hs1/sh1/");
    РезультатССервера = HTTPСоединение.ВызватьHTTPМетод("GET",HTTPЗапрос);
24 lite777
 
17.11.22
16:12
(23) Так работает ОК спасибо, значит не нужно никакого порта и SSL , а я тут подпирал порты 80 443
25 lite777
 
17.11.22
16:15
(24) Хотя с портом 80 тоже идет