我正在尝试使用TCL (OpenACS)执行以下请求
http::register https 443 tls::socket
set url "https://encrypted.google.com"
set token [http::geturl $url -timeout 30000]
set status [http::status $token]
set answer [http::data $token]
http::cleanup $token
http::unregister https问题是,当我读取$status变量时,我得到的是"eof“,而$answer变量则变为空。我尝试启用tls V.1
http::register https 443 [list tls::socket -tls1 1]而且它只适用于站点https://www.galileo.edu,而不适用于https://encrypted.google.com。
我尝试连接的站点是https://graph.facebook.com/me/feed?access_token=...但它不起作用。
我使用curl检索HTTPS中的页面内容,并且工作正常,我已经安装了OpenSSL,所以我看不到问题,还有另一种方法可以用TCL进行HTTPS连接?
我不知道这是不是编码的问题(也许我注册了错误的https协议),或者可能是我的服务器配置不好。希望有人能帮忙!!谢谢!
发布于 2011-01-06 00:51:01
嗯,我不能重现。您使用的是哪个补丁级别的Tcl,以及tls包的哪个版本?
我这样做了:
package require http
package require tls
# This is your code, cut-n-pasted with blank lines removed
http::register https 443 tls::socket
set url "https://encrypted.google.com"
set token [http::geturl $url -timeout 30000]
set status [http::status $token]
set answer [http::data $token]
http::cleanup $token
http::unregister https
puts $status它产生“ok”作为输出,$status的内容看起来也很可能(但太长了,不能粘贴在这里)。
https://stackoverflow.com/questions/4606579
复制相似问题