精通Grails: RESTful Grails - 编程入门网
port/list,并验证 Accept 报头正在请求 text/xml 。这就是资源的 MIME 类型了。
那么,Grails 是如何响应服务器端的 Accept 报头的呢?再向 AirportController 添加一个闭包, 如清单 4 所示: 清单 4. debugAccept 操作
清单 4 中的第一行从请求中检索出了 Accept 报头。第二行展示了 Grails 如何转换请求和它将要发 回的响应。 现在,使用 cURL 来做相同的搜索,如清单 5 所示: 清单 5. 调试 cURL 中的 Accept 报头
精通Grails: RESTful Grails(6)时间:2011-07-29 IBM Scott Davisall 和 xml 值是哪来的呢?看一下 grails-app/conf/Config.groovy。在文件顶部,您应该看到了一 个散列映射,它对所有的键都使用了简单名称(像 all 和 xml 这样的名称),而且所有的值都使用了与 之对应的 MIME 类型。清单 6 展示了 grails.mime.types 散列映射: 清单 6. Config.groovy 中的 grails.mime.types 散列
典型的 Web 浏览器提供的 Accept 报头要比您与 cURL 一起使用的稍微复杂些。例如,Mac OS X 10.5.4 上的 Firefox 3.0.1 提供的 Accept 报头大致是这样的: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 它是一个用逗号隔开的列表,它带有可选的 q 属性,用以支持 MIME 类型(q 值 — quality 的缩写 — 是 float 值,范围是 0.0 到 1.0)。由于 application/xml 被赋予了一个为 0.9 的 q 值,所以与 其他类型的数据相比,Firefox 更偏好 XML 数据。 下面是 Mac OS X 10.5.4 上的 Safari 3.1.2 版本提供的 accept 报头:
text/html MIME 类型被赋予了一个为 0.9 的 q 值,所以首选的输出类型是 HTML,0.8 时为 text/plain,0.5 时为 */*。 那么,现在您应该对内容协商有了更多的了解了,您可以将 withFormat 块添加到 list 操作,以此 来依据请求中的 Accept 报头返回合适的数据类型,如清单 7 所示: 清单 7. 在一个操作中使用 withFormat 块
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |