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

时间:2017-10-09 12:09:18

标签: 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.txt]
set phone [read $id]
close $id
puts $phone

但是在执行代码时,我收到错误

invalid command name "http::geturl"
    while executing

2 个答案:

答案 0 :(得分:1)

http包需要加载到你的Tcl解释器中;它默认不存在。因此,在脚本的顶部(正好在#!行的下方)放置:

package require http

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

#!/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

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

答案 1 :(得分:0)

我在Naviserver中对TCL使用了以下命令。 我没有帮助,但这就是在AJAX调用中对我有用的方法。

ns_return 200 application/json $your_response_content

语法:ns_return ?-binary? status mime-type body

参考:Naviserver Commands for TCL