WEB开发网
开发学院软件开发Java 精通 Grails: RESTful Grails 阅读

精通 Grails: RESTful Grails

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 注意请求中的 Accept 报头,客户机要是提交 */* 的话,精通 Grails: RESTful Grails(9),就意味着:“返回什么样的格式都无所谓,我将接受任何内容,您应该看到了一个散列映射,它对所有的键都使用了简单名称(像 all 和 xml 这样的名称),&rdquo

注意请求中的 Accept 报头。客户机要是提交 */* 的话,就意味着:“返回什么样的格式都无所谓。我将接受任何内容。”

cURL 允许您使用这个值来覆盖 --header 参数。输入 curl --request HEAD --verbose --header Accept:text/xml http://localhost:9090/trip/airport/list,并验证 Accept 报头正在请求 text/xml。这就是资源的 MIME 类型了。

那么,Grails 是如何响应服务器端的 Accept 报头的呢?再向 AirportController 添加一个闭包,如清单 4 所示:


清单 4. debugAccept 操作
def debugAccept = { 
 def clientRequest = request.getHeader("accept") 
 def serverResponse = request.format 
 render "Client: ${clientRequest}\nServer: ${serverResponse}\n"   
} 

清单 4 中的第一行从请求中检索出了 Accept 报头。第二行展示了 Grails 如何转换请求和它将要发回的响应。

现在,使用 cURL 来做相同的搜索,如清单 5 所示:


清单 5. 调试 cURL 中的 Accept 报头
$ curl http://localhost:9090/trip/airport/debugAccept 
Client: */* 
Server: all 
 
$ curl --header Accept:text/xml http://localhost:9090/trip/airport/debugAccept 
Client: text/xml 
Server: xml 

all 和 xml 值是哪来的呢?看一下 grails-app/conf/Config.groovy。在文件顶部,您应该看到了一个散列映射,它对所有的键都使用了简单名称(像 all 和 xml 这样的名称),而且所有的值都使用了与之对应的 MIME 类型。清单 6 展示了 grails.mime.types 散列映射:

上一页  4 5 6 7 8 9 10  下一页

Tags:精通 Grails RESTful

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接