https连接的TCL HTTP包问题
我正在做一个简单的机器人,浏览一些网页和“阅读”那里的新闻。但在某些页面中,如“”中,连接不起作用 我的代码如下:https连接的TCL HTTP包问题,http,https,tcl,Http,Https,Tcl,我正在做一个简单的机器人,浏览一些网页和“阅读”那里的新闻。但在某些页面中,如“”中,连接不起作用 我的代码如下: 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 [l
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吗
提前感谢。我运行了代码,毫无问题地获得了html内容。 刚刚加上
set url "https://www.iprofesional.com"
在包裹线之后,以及
puts $html
在if语句的末尾
我想你最好把你的错误贴上去
Saludos,冻结我的控制台的完整代码是:
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
我试过使用带有WindowsXPSP3/32b的宏碁Extensa5230和同样带有Windows7 Professional Sp1/64b的笔记本电脑。可能是硬件相关的问题,我不知道,但是如果我将html变量作为参数传递给函数,它就可以正常工作
在windows XP中,我运行的是tcl/tk 8.6,然后我下载了“ActiveTcl-8.6.6.8607-MSWin32-x86-403667.exe”,并将其安装在windows 7 Sp1/64b分区中,出现了相同的问题
我将尝试在另一台计算机上测试此问题,并发布我的结果。我的错误是,在我调用“set html[::http::data$http]”后,系统被冻结。您使用的是哪个版本的http软件包?我的版本是2.8.8,在tcl 8.6I下运行,测试代码与您的测试完全一样。。。现在,当我尝试执行“puts$html”时,我的控制台被冻结。可能是tcl?http 2.8.8 tls 1.6.7.1 tdom 0.8.3 tcl 8.6 win7/32Try中的错误,捕获后的第一行是«puts[::http::code$http]»(在我的示例中显示“http/1.1 200 OK”我在我的win7机器上安装了最新版本的tcl,仍然存在相同的问题。当我按照你的建议执行操作时,我得到了相同的响应。你为什么要注销https处理程序?这是…出乎意料的。没有成功…使用windows 7的新框和与我的windows XP相同的tcl/tk 8.6时出现了相同的问题。