Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Подключение к сайту по протоколу https

Подключение  к сайту по протоколу https
Я
   ChMikle
 
01.06.20 - 15:21
&НаКлиенте
Процедура олучитьСтраницуСайтаЧерезHttpЗапросНаКлиенте()

    Соединение = Новый HTTPСоединение(
        СерверСайта,443,);

    Запрос = Новый HTTPЗапрос("/");
    Результат = Соединение.Получить(Запрос);
КонцеПроцедуры

Результат.КодСостояния = 400 или при защищенном соединении 301
Хотя на сайт захожу без проблем через браузер
   ДенисЧ
 
1 - 01.06.20 - 15:31
Продам статью из СП про HTTPСоединение.
Дорого.
За отдельные деньги подчеркну нужные параметры...
   ChMikle
 
2 - 01.06.20 - 15:32
другой сайт подключает нормально
   ChMikle
 
3 - 01.06.20 - 15:32
(1) Не ругайсе начальнике ...(с)
   ДенисЧ
 
4 - 01.06.20 - 15:37
(3) Я не ругаяясся. Я пытаюсь заработать )))
   ChMikle
 
5 - 01.06.20 - 15:39
(4) один сайт подключает , а нужный нет ... подскажи уж за ради бога :))
   Вафель
 
6 - 01.06.20 - 15:48
там есть параметр нужный
   ChMikle
 
7 - 01.06.20 - 15:57
(6) Какой паарметр?
   Вафель
 
8 - 01.06.20 - 15:59
см (1)
   ChMikle
 
9 - 01.06.20 - 16:01
я не пойму что за статья , ткните носом ? :)
   Ёпрст
 
10 - 01.06.20 - 16:04
(9) ЖКК жешь..
   Ёпрст
 
11 - 01.06.20 - 16:05
а так, ошибка в 5 строке
   ChMikle
 
12 - 01.06.20 - 16:10
(11) В этой
>>Запрос = Новый HTTPЗапрос("/"); ?
   ам794123
 
13 - 01.06.20 - 16:12
(12)     Запрос = Новый HTTPЗапрос("/");
    //В запросе можно обратиться к нужному ресурсу и с нужными параметрами

    //Запрос = Новый HTTPЗапрос("/index.php?param1=1&param2=2");
   ChMikle
 
14 - 01.06.20 - 16:15
(13) Я так понял Новый HTTPЗапрос("/"); - должен был просто корневой каталог вернуть
   ChMikle
 
15 - 01.06.20 - 16:17
+(14) использую другой сайт и все возвращает
   ам794123
 
16 - 01.06.20 - 16:20
(15) а что там в СерверСайта?
   ChMikle
 
17 - 01.06.20 - 16:21
gorod48.ru без проблем
santehsmart.ru - 301 ошибка
   ChMikle
 
18 - 01.06.20 - 16:22
https://helpme1c.ru/rabota-s-http-zaprosami-get-i-post-v-yazyke-1s-8-3-8-2-v-primerax
Вот здесь читал и разбирал код
&НаКлиенте

Процедура КакПослатьЗащищенныйHttpsЗапросКСерверуНаКлиенте()

    // Получим код страницы https://ya.ru
    // Так как для доступа к ней используется защищенный
    // протокол https - нам нужно заполнить последний
    // параметр при соединении с сервером.

    Соединение = Новый HTTPСоединение(
        "ya.ru", // сервер (хост)
        443, // порт, по умолчанию для http используется 80, для https 443
        , // пользователь для доступа к серверу (если он есть)
        , // пароль для доступа к серверу (если он есть)
        , // здесь указывается прокси, если он есть
        , // таймаут в секундах, 0 или пусто - не устанавливать
       Новый ЗащищенноеСоединениеOpenSSL()
    );

    // Получаем текст корневой страницы через GET-запрос.
    Запрос = Новый HTTPЗапрос("/");
    // Если бы нужна была другая страница, мы бы указали,
    // например, "/about" или "/news".

    Результат = Соединение.Получить(Запрос);
    Сообщить(Результат.КодСостояния);
    Сообщить(Результат.ПолучитьТелоКакСтроку());

КонецПроцедуры
   ам794123
 
19 - 01.06.20 - 16:27
(17) тогда нужно обратиться к админам сайта, что-то там изменено
   ДенисЧ
 
20 - 01.06.20 - 16:28
(17) А если 301, что в заголовках ответа?
   ChMikle
 
21 - 01.06.20 - 16:30
КлючИЗначение    КлючИЗначение    "Server"    "nginx/1.16.0"

КлючИЗначение    КлючИЗначение    "Date"    "Mon, 01 Jun 2020 13:30:08 GMT"
КлючИЗначение    КлючИЗначение    "Content-Type"    "text/html"
КлючИЗначение    КлючИЗначение    "Transfer-Encoding"    "chunked"
КлючИЗначение    КлючИЗначение    "Location"    "https://www.santehsmart.ru:443/";
КлючИЗначение    КлючИЗначение    "Connection"    "keep-alive"
КлючИЗначение    КлючИЗначение    "Strict-Transport-Security"    "max-age=31536000;"
КлючИЗначение    КлючИЗначение    "X-Content-Type-Options"    "nosniff"
   ДенисЧ
 
22 - 01.06.20 - 16:42
Ну так
КлючИЗначение    КлючИЗначение    "Location"    "https://www.santehsmart.ru:443/";;

Само за себя говорит...
   ChMikle
 
23 - 01.06.20 - 16:44
(22) а как исправить или что делать ?
   ptiz
 
24 - 01.06.20 - 16:44
(0) 301 - это не ошибка
   ChMikle
 
25 - 01.06.20 - 16:45
(24)301 - запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода
Вы про это ?
   ДенисЧ
 
26 - 01.06.20 - 16:45
(23) Сходить по указанному адресу - не предлагать?
   ChMikle
 
27 - 01.06.20 - 16:47
(26) так он вроде ничем не отличается от исходного ?
   ДенисЧ
 
28 - 01.06.20 - 16:49
(27) Отличается... Я тебе уже намекнул про параметры HTTPСоединение.... Аль не?
   ChMikle
 
29 - 01.06.20 - 16:50
(28) я в этой теме не силен , скажи прямо : "Валенок , смотри тут надо так ... " :) и пример параметра
   ДенисЧ
 
30 - 01.06.20 - 16:52
(29) 7й параметр задай. Например, как Новый ЗащищенноеСоединение()
 
 Рекламное место пустует
   ChMikle
 
31 - 01.06.20 - 16:58
(30) Соединение = Новый HTTPСоединение("santehsmart.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL()); 

Задавал - но результат тот же :)
   Ёпрст
 
32 - 01.06.20 - 17:05
(31) порт задай 443
   ChMikle
 
33 - 01.06.20 - 17:08
(332) задавал, он и так автоматически подставляет порт 443 если задаешь значение параметра ЗащищенноеСоединение
   ChMikle
 
34 - 01.06.20 - 17:09
разобрался :) там 301 это пересылка на другой адрес
   ChMikle
 
35 - 01.06.20 - 17:10
ИмяHTMLФайла =ПолучитьимяВременногоФайла();
Соединение = Новый HTTPСоединение("santehsmart.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL()); 
Запрос = Новый HTTPЗапрос("/");
Ответ =Соединение.Получить(Запрос,ИмяHTMLФайла);
 
Если Ответ.КодСостояния = 200 Тогда// Данные получены, обрабатываем их

        Содержимое = Ответ.ПолучитьТелоКакСтроку();
    ИначеЕсли Ответ.КодСостояния = 301 Тогда// Данные получены, обрабатываем их

    Перенаправление = Ответ.Заголовки.Получить("Location");    
    URI = ОбщегоНазначенияКлиентСервер.СтруктураURI(Перенаправление);
 
    Соединение = Новый HTTPСоединение(URI.Хост, URI.Порт,,,,,
        Новый ЗащищенноеСоединениеOpenSSL());
    Запрос = Новый HTTPЗапрос(URI.ПутьНаСервере);    
    Результат =  Соединение.Получить(Запрос);
    Иначе
        
    возврат;    
КонецЕсли;

Результат.КодСостояния = 200 :))))
   Ёпрст
 
36 - 01.06.20 - 17:13
(35)  с вас 500 рублёв за консультацию
   ChMikle
 
37 - 01.06.20 - 17:14
(36) так ведь, это , сам дошел ... дело-то не в 443 порте было :)
   ChMikle
 
38 - 01.06.20 - 17:25
А так, спасибо всем неравнодушным :), код верный выложил. Может кому-то и пригодится


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.