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

精通 Grails: RESTful Grails

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 内容协商与 Accept 报头创建一个返回数据的 HTML 和 XML 表示的单独闭包是很简单的,但如果想创建一个既可以返回 HTML 又可以返回 XML 表示的闭包的话,精通 Grails: RESTful Grails(8),该怎么办呢,这也是可以实现的,另外,将 cURL 放置于 verb

内容协商与 Accept 报头

创建一个返回数据的 HTML 和 XML 表示的单独闭包是很简单的,但如果想创建一个既可以返回 HTML 又可以返回 XML 表示的闭包的话,该怎么办呢。这也是可以实现的,这要多亏在 HTTP 请求中包含有 Accept 报头。这个简单的元数据告诉服务器:“嗨,您对这个 URI 中的资源可能有不只一个资源表示 — 我更喜欢这个。”

cURL 是一个方便的开源命令行 HTTP 工具。在命令行输入 curl http://localhost:9090/trip/airport/list ,以此来模拟请求机场列表的浏览器请求。您应该会看到 HTML 响应展现在您的荧屏上。

现在,对请求做两处小小的变动。这回,代替 GET 发出一个 HEAD 请求。HEAD 是一个标准 HTTP 方法,它仅仅返回响应的元数据,而不返回正文(您现在正在进行的调试的类型包含在 HTTP 规范中)。另外,将 cURL 放置于 verbose 模式,这样您就也能够看到请求元数据了,如清单 3 所示:


清单 3. 使用 cURL 来调试 HTTP
$ curl --request HEAD --verbose http://localhost:9090/trip/airport/list 
* About to connect() to localhost port 9090 (#0) 
*  Trying ::1... connected 
* Connected to localhost (::1) port 9090 (#0) 
> HEAD /trip/airport/list HTTP/1.1 
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) 
    libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 
> Host: localhost:9090 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< Content-Language: en-US 
< Content-Type: text/html; charset=utf-8 
< Content-Length: 0 
< Server: Jetty(6.1.4) 
< 
* Connection #0 to host localhost left intact 
* Closing connection #0 

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

Tags:精通 Grails RESTful

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