我的代码示例是
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信息。我不知道如何查看,请帮助解决此问题。
由于
答案 0 :(得分:0)
通常在处理REST时,我只是直接使用标准http
包(或包装成一个小类)。这样您就可以使用http::meta
来获取血腥响应详细信息,还可以让您更准确地控制首先发送的消息(通常非常重要!)
然而,我(因为我非常 au fait 使用REST和http
包)。让我们更仔细地研究rest
package并让它做我们想要的。
通过仔细阅读文档,我看到接口描述符字典允许键pre_transform
和post_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
字段中获得你想要的额外信息(更有可能!)。