https连接的TCL HTTP软件包问题

时间:2018-09-05 21:12:04

标签: http https tcl

我正在做一个简单的机器人,可以浏览一些页面并在那里“阅读”新闻。但是在某些页面中,例如“ 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
}

如果使用该网址运行此代码,您将看到问题所在。

有什么主意如何让我的代码使用该网址?

谢谢。

2 个答案:

答案 0 :(得分:0)

我运行了代码,并且毫无问题地得到了html内容。 刚刚添加

)(

包装行之后,和

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

if语句的末尾。

我想粘贴错误会更好。

Saludos,

答案 1 :(得分:0)

冻结控制台的完整代码是:

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

我在装有Windows XP SP3 / 32b和Windows 7 Professional Sp1 / 64b的笔记本电脑的Acer Extensa 5230中进行了尝试。也许不知道与硬件相关的问题,但是如果我将html变量作为参数传递给函数,则该函数无需任何探测即可工作。

在Windows XP中,我正在运行tcl / tk 8.6,然后下载了“ ActiveTcl-8.6.6.8607-MSWin32-x86-403667.exe”,并将其安装在Windows 7 Sp1 / 64b分区中,并且存在相同的问题。

我将尝试在另一台计算机上测试此问题,并将发布结果。