如何查看TCL REST响应标头

时间:2014-04-19 13:02:53

标签: rest tcl

我的代码示例是

package require rest
set yweather(forecast) {
   url http://weather.yahooapis.com/forecastrss
   req_args { p: }
   opt_args { u: }
}
rest::create_interface yweather

输出

% set res [yweather::forecast -p 94089]
channel {title {content {Yahoo! Weather - Sunnyvale, CA}} .........

但我正在尝试查看响应标头,如状态代码,设置cookie信息。我不知道如何查看,请帮助解决此问题。

由于

1 个答案:

答案 0 :(得分:0)

通常在处理REST时,我只是直接使用标准http包(或包装成一个小类)。这样您就可以使用http::meta来获取血腥响应详细信息,还可以让您更准确地控制首先发送的消息(通常非常重要!)

然而,(因为我非常 au fait 使用REST和http包)。让我们更仔细地研究rest package并让它做我们想要的。

通过仔细阅读文档,我看到接口描述符字典允许键pre_transformpost_transform,并且http令牌在调用上下文中可用。让我们试试post_transform ...

package require rest
set yweather(forecast) {
    url http://weather.yahooapis.com/forecastrss
    req_args { p: }
    opt_args { u: }
    post_transform extract_metadata
}
rest::create_interface yweather
proc extract_metadata {response} {
    upvar 1 token token
    lappend response [http::meta $token]
    return $response
}

现在,如果你这样做:

set res [yweather::forecast -p 94089]

你应该在最后的meta字段中获得你想要的额外信息(更有可能!)。

相关问题