使用TCL Rest包的基本身份验证问题
TCL新手,在使用使用TCL Rest包的基本身份验证问题,rest,tcl,basic-authentication,Rest,Tcl,Basic Authentication,TCL新手,在使用::rest::simple url query?config?body?命令-特别是让基本身份验证生效。此处给出的示例()如下所示: set url http://twitter.com/statuses/update.json set query [list status $text] set res [rest::simple $url $query { method post auth {basic user pa
::rest::simple url query?config?body?
命令-特别是让基本身份验证生效。此处给出的示例()如下所示:
set url http://twitter.com/statuses/update.json
set query [list status $text]
set res [rest::simple $url $query {
method post
auth {basic user password}
format json
}]
因此,我的尝试是:
package require rest
package require json
set url http://0.0.0.0:5000/api/id
set response [rest::simple $url {
method get
auth {basic user password}
format json
}]
puts $response
但是,当我尝试针对GET的模拟API端点运行上述操作时,我不断收到401错误:
"GET /api/id?auth=basic%20user%20password&method=get&format=json HTTP/1.1" 401 -
我可以使用basic auth(也可以使用Python)对同一个端点发出curl请求,如果我在端点上禁用basic auth,这在TCL中就可以正常工作:
set url http://0.0.0.0:5000/api/id
set response [rest::simple $url {
method get
format json
}]
puts $response
因此,这与TCL rest模块中的基本身份验证凭据有关 感谢Shawn的评论,他指出我误解了TCL文档中
?
的含义。由问号包围的参数是可选的,而不是后跟问号的参数。我在解释::rest::简单url查询?配置?body?
表示查询参数是可选的。如果没有查询,则可以使用空查询作为所需参数。这最终奏效了:
set response [rest::simple $url {} {
method get
auth {basic user password}
format json
}]
请密切注意示例和您的版本中
rest::simple
的参数数量。@Shawn Ahh是的,谢谢。我对这门语言还不熟悉,而且我误读了它的意思?关于可选参数的文档。问题解决了吗?