![]() |
![]() |
![]() |
|
Получение HTML по https протоколу | ☑ | ||
---|---|---|---|---|
0
iksanov
14.07.16
✎
05:59
|
Всем привет!
Есть кусок кода, который получает разметку html по https, для яндекса работает корректо, но проблема для гугля не работает никак, кто может посоветовать куда копать? //стрURL = "https://yandex.ru/maps"; //стрURL = "https://google.ru/maps"; стрURL = "https://www.google.ru/maps"; // вычислить адрес сервера из адресной сторки АдресСервера1 = СтрЗаменить(стрURL, "https://" ,""); индексСлеша = Найти(АдресСервера1, "/"); АдресСервера = Сред(АдресСервера1, 0 ,индексСлеша - 1); // вычислить строку URL длинаСтроки = СтрДлина(АдресСервера1); URL = "/" + Прав(АдресСервера1, длинаСтроки - индексСлеша); // установим правильные заголовки соединения ЗаголовокGET = Новый Соответствие(); ЗаголовокGET.Вставить("GET " + URL + " HTTP/1.1"); ЗаголовокGET.Вставить("Host", АдресСервера); ЗаголовокGET.Вставить("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; InfoPath.3; .NET4.0E)"); ЗаголовокGET.Вставить("Cookie","ps_gch=123.... ДАЛЕЕ ВАШИ ЗНАЧЕНИЯ Cookie "); Сообщить("АдресСервера:" + АдресСервера); Сообщить("URL:" + URL); Сообщить("Cookie:" + СтрЗаменить(ЗаголовокGET["Cookie"],"; ",Символ(13))); Сообщить("Попытка..."); Попытка ssl = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443 , , , , 5, ssl); HTTPЗапрос = Новый HTTPЗапрос(URL, ЗаголовокGET); HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос); КодСостояния = HTTPОтвет.КодСостояния; responseText = HTTPОтвет.ПолучитьТелоКакСтроку(); Сообщить(КодСостояния); Сообщить(responseText); Исключение Сообщить("Не удалось установить соединение с сервером :" + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); КонецПопытки; Вот для Яши: http://saveimg.ru/pictures/14-07-16/f1edbf6419d1221de9dcb226c596b0be.JPG Для Гугла: http://saveimg.ru/pictures/14-07-16/7a692232c1e89aa3a72a8fde3ae8cd15.JPG Может порт не тот для гугла? |
|||
1
SiAl-chel
14.07.16
✎
07:45
|
(0) Я бы поигрался с разными параметрами метода
Новый HTTPСоединение(АдресСервера, 443 , , , , 5, ssl); Может тут надо другие параметры указывать. Потому что даже до сервера подцепиться не можешь, чтобы он ответ дал. |
|||
2
iksanov
14.07.16
✎
13:32
|
Да тоже склоняюсь к этому, но ничего не подходит
|
|||
3
H A D G E H O G s
14.07.16
✎
13:36
|
Сервер требует сертификат?
|
|||
4
Serginio1
14.07.16
✎
13:59
|
Если что
.Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд врап=новый COMОбъект("NetObjectToIDispatch45"); HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll"); handler = врап.СоздатьОбъект("System.Net.Http.HttpClientHandler"); DecompressionMethods= Врап.ПолучитьТип("System.Net.DecompressionMethods"); handler.AutomaticDecompression=Врап.OR(DecompressionMethods.GZip,DecompressionMethods.Deflate) ; Клиент=Врап.СоздатьОбъект(HttpClient,handler); Стр=Клиент.GetStringAsync("https://www.google.ru/maps").Result; Сообщить(СтрДлина(Стр)); //Клиент.Dispose(); Врап.ЗакрытьРесурс(Клиент); |
|||
5
iksanov
14.07.16
✎
16:30
|
(3) хз но без этогго
ssl = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(АдресСервера, 443 , , , , 5, ssl); вот так HTTPСоединение = Новый HTTPСоединение(АдресСервера, , , , , , Истина); Не прокатило с яндексом и с гуглом тоже |
|||
6
Serginio1
14.07.16
✎
16:44
|
||||
7
Serginio1
14.07.16
✎
16:45
|
||||
8
iksanov
14.07.16
✎
18:25
|
(4) Там со списком прокси можно работать? Просто я могу и через COMОбъект IE работать, но там со списком прокси непонятно как организовать работу, а через HTTPСоединение все просто, но оно не дружит с протоколом гугля)
|
|||
9
Serginio1
14.07.16
✎
19:33
|
||||
10
Serginio1
14.07.16
✎
19:36
|
||||
11
iksanov
15.07.16
✎
07:10
|
(4) Чет код твой не взлетел, не нашел наверное Ком объект.
{Форма.Форма.Форма(3)}: Ошибка при вызове конструктора (COMОбъект) врап=новый COMОбъект("NetObjectToIDispatch45"); по причине: Недопустимая строка с указанием класса |
|||
12
Serginio1
15.07.16
✎
07:29
|
||||
13
iksanov
16.07.16
✎
03:26
|
короче все норм https заработал, надо было обновить платформу до последнего релиза)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |