使用TCL Rest包的基本身份验证问题

使用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

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 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是的,谢谢。我对这门语言还不熟悉,而且我误读了它的意思?关于可选参数的文档。问题解决了吗?