Проблема пакета TCL HTTP с соединением https - PullRequest
0 голосов
/ 06 сентября 2018

Я занимаюсь простым ботом, который просматривает некоторые страницы и «читает» там новости. Но на некоторых страницах, например "https://www.iprofesional.com", соединение не работает.

Мой код выглядит следующим образом:

package require http
package require tls
package require tdom

            ::http::config -useragent "Mozilla/4.75 (X11; U; Linux 2.2.17; i586; Nav)"

            ::http::register https 443 [list ::tls::socket -tls1 1]   ;# "-tls1 1" is required since [POODLE]

if {[catch "::http::geturl $url" http] == 0} {
 set html  [::http::data $http]

            ::http::cleanup $http

            ::http::unregister https
}

Если вы запустите этот код с этим URL, вы увидите, в чем проблема.

Есть идеи, как заставить мой код работать с этим URL?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Полный код, который замораживает мою консоль:

package require http
package require tls
package require tdom

set url "https://www.iprofesional.com"

            ::http::config -useragent "Mozilla/4.75 (X11; U; Linux 2.2.17; i586; Nav)"

            ::http::register https 443 [list ::tls::socket -tls1 1]   ;# "-tls1 1" is required since [POODLE]

if {[catch "::http::geturl $url" http] == 0} {
 set html  [::http::data $http]

            ::http::cleanup $http

            ::http::unregister https

 puts $html
}

Замерзает консоль в:

puts $html

Я пробовал в Acer Extensa 5230 с Windows XP SP3 / 32b и таким же ноутбуком с Windows 7 Professional Sp1 / 64b. Может быть, проблема связана с аппаратным обеспечением, не знаю, но если я передаю переменную html в качестве аргумента функции, она работает без проблем.

В Windows XP я запускаю tcl / tk 8.6, а затем я скачал «ActiveTcl-8.6.6.8607-MSWin32-x86-403667.exe» и установил его в раздел Windows 7 Sp1 / 64b и имею ту же проблему.

Я попытаюсь проверить эту проблему на другом компьютере и опубликую свой результат.

0 голосов
/ 06 сентября 2018

Я запустил код и без проблем получил HTML-контент.Просто добавили

set url "https://www.iprofesional.com"

после строки пакетов и

puts $html

в конце предложения if.

Думаю, будет лучше, если вы вставите свою ошибку.

Салудос,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...