如何在TCL中的http get查询中获取响应

如何在TCL中的http get查询中获取响应,tcl,Tcl,有一个小代码,它应该向站点发送请求并接收回复。我只懂语言,不懂怎么做。 下面是使用http get方法发送请求的代码片段 #!/usr/bin/expect set id [open file.txt w] set tok [::http::geturl "https://example.com/reques.php?=somedate -timeout 2000 -channel $id] ::http::cleanup $tok close $id set id [open file.t

有一个小代码,它应该向站点发送请求并接收回复。我只懂语言,不懂怎么做。 下面是使用http get方法发送请求的代码片段

#!/usr/bin/expect 

set id [open file.txt w]
set tok [::http::geturl "https://example.com/reques.php?=somedate -timeout 2000 -channel $id]
::http::cleanup $tok
close $id
set id [open file.txt]
set phone [read $id]
close $id
puts $phone
但是当执行代码时,我得到了一个错误

invalid command name "http::geturl"
    while executing

http包需要加载到Tcl解释器中;默认情况下它不在那里。因此,在脚本的顶部(就在
#!
行的下方)放上:

事实上,以这种方式陈述您所依赖的每个包通常是一个好主意,因为这样可以很容易地看到正在发生的一切(并且您可以选择陈述您期望的版本):


包名称区分大小写。您可以

我在Naviserver中对TCL使用了以下命令。 我不知道这是否有帮助,但这正是在AJAX调用中对我起作用的地方

ns_return 200 application/json $your_response_content
语法:
ns\u返回?-二进制?状态mime类型正文


参考资料:

多谢,多纳尔!现在我将更多地了解TCL语言。我试着按照你写的那样做,我以html的格式获取页面的文本,我以get的格式发送请求,然后等待来自站点的带有特定数据的响应,然后我必须解释这些数据。如果我通过curlbash脚本向我发送一个get请求,数据来自站点,那么我如何在Tcl中执行相同的操作?现在,我在页面主体中出现了一个错误301,可能是因为它是https上的一个站点?我尝试使用您的示例为另一个用户提供https,但我得到一个错误“找不到包tls”
tls
包(加密通信所需的SSL支持)在其他地方可用,但这是一个单独的问题。另外,我怀疑这是一个肯定已经回答过的问题。是的,我解决了这个问题,没有它,我发现了一个使用http的api。但还是非常感谢,你的回答让我明白了代码的结构。。。
#!/usr/bin/expect

# At least Tcl 8.5; 8.6 will be fine too
package require Tcl 8.5

# Any version of Expect
package require Expect

# Any version of the http package that supports the v2 API
package require http 2
ns_return 200 application/json $your_response_content