当前位置:  软件>java软件

HTTPBuilder

    来源:    发布时间:2015-01-16

    本文导语:  如果熟悉HttpClient,那么你对 HTTPBuilder就不会感到陌生,它是对前者的封装,使之更符合Groovy的使用惯例。下面的例子摘自HTTPBuilder的文档,它充分展示 了自己的特点: import groovyx.net.http.HTTPBuilderimport static groovyx.net.http.Method.GETi...

如果熟悉HttpClient,那么你对 HTTPBuilder就不会感到陌生,它是对前者的封装,使之更符合Groovy的使用惯例。下面的例子摘自HTTPBuilder的文档,它充分展示 了自己的特点:

import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.TEXT

def http = new HTTPBuilder( 'http://www.google.com/search' )

http.request(GET,TEXT) { req ->
uri.path = '/mail/help/tasks/'
headers.'User-Agent' = 'Mozilla/5.0'

//请求成功
response.success = { resp, reader ->
assert resp.statusLine.statusCode == 200
println "My response handler got response: ${resp.statusLine}"
println "Response length: ${resp.headers.'Content-Length'}"
System.out
println 'Not found'
}

// 401
http.handler.'401' = { resp ->
println "Access denied"
}

//其他错误,不实现则采用缺省的:抛出异常。
http.handler.failure = { resp ->
println "Unexpected failure: ${resp.statusLine}"
}
}

无需过多的讲解,上述的例子已经非常明白地说明了HTTPBuilder的基本使用。尽管如此,对于上例中的内容类型(即request括号中的 TEXT),还是有必要啰嗦几句。HTTPBuilder支持对响应内容的自动解析,解析的方式可在请求中指定,缺省除了TEXT之外,还支持XML、 HTML和JSON。如果在请求中不指定解析方式,那么它会根据响应的内容类型选择最合适的方式进行解析。对于每一种内容类型:

  • TEXT,纯文本
  • XML,采用XmlSlurper解析内容
  • HTML,先采用NekoHTML使HTML 规范化,之后采用XmlSlurper解析DOM
  • JSON,采用JSON-lib解析内容

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3