groovy使用HTTPBuilder发送HTTP请求

groovy使用HTTPBuilder发送HTTP请求

前阵子有一个需求,持续集成平台需要获取一个文件列表,并以可选择参数的方式列出来。列表文件来自于一个web页面,下面挂在了N个可选的文件(build后生成的zip包)


考虑用groovy发送http请求获取response,解析后以列表方式展示,因为groovy是新手,所以走了很多弯路。

1. 首先groovy请求http需要依赖HTTPBuilder模块儿,不知道怎么安装模块儿,辗转了半天,后来发现支持Grab语法,代码如下

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' )import groovyx.net.http.HTTPBuilderimport groovyx.net.http.RESTClientimport groovyx.net.http.HttpResponseDecoratorimport static groovyx.net.http.ContentType.*import static groovyx.net.http.Method.*def http = new HTTPBuilder()http.request( 'http://10.1.90.42', GET, TEXT ) {     req ->    uri.path = '/android_test/releases/test'    headers.'User-Agent' = "Mozilla/5.0 Firefox/3.0.4"    headers.Accept = 'application/json'    response.success = {         resp, reader ->        assert resp.statusLine.statusCode == 200        println "Got response: ${resp.statusLine}"        println "Content-Type: ${resp.headers.'Content-Type'}"        println reader.text    }    response.'404' = {        println 'Not found'    }}

获取数据后,再进行解析展示,done!

2. 也可以用另一个http请求方式,不用安装module

def connection = new URL("http://10.1.30.42/android_test/releases/test").openConnection() connection.setRequestMethod('GET') connection.doOutput = true def writer = new OutputStreamWriter(connection.outputStream) writer.flush() writer.close() connection.connect() def respText = connection.content.text

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部