`
romejiang
  • 浏览: 96670 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

Groovy新发布的 HTTPBuilder 模块

阅读更多


http://groovy.codehaus.org/modules/http-builder/

HTTPBuilder 是基于 Apache  HttpClient框架的Groovy模块,使用Groovy的语法习惯。request/response的模式是借鉴与Prototype.js Ajax.Request模块的灵感,所以使用非常方便。有了HTTPBuilder 通过Groovy语言实现定向爬虫、模拟浏览器、操作HTTP协议等工作就方便的多了,不用在使用复杂的Connection或者HttpClient了。

 
访问JSON接口的例子:

def http = new HTTPBuilder( 'http://ajax.googleapis.com' )  
  
// perform a GET request, expecting JSON response data  
http.request( GET, JSON ) {  
  url.path = '/ajax/services/search/web'  
  url.query = [ v:'1.0', q: 'Calvin and Hobbes' ]  
  
  headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4'  
  
  // response handler for a success response code:  
  response.success = { resp, json ->  
    println resp.statusLine  
  
    // parse the JSON response object:  
    json.responseData.results.each {   
      println "  ${it.titleNoFormatting} : ${it.visibleUrl}"  
    }  
  }  
  
  // handler for any failure status code:  
  response.failure = { resp ->  
    println "Unexpected error: ${resp.statusLine.statusCode} : ${resp.statusLine.reasonPhrase}"   
  }  
} 

 

访问网页,对错误信息的处理

 

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

http.request(GET,TEXT) { req ->
  url.host = 'www.google.com' // overrides default URL
  headers.'User-Agent' = 'Mozilla/5.0'
  
  response.success = { resp, reader ->
    println 'my response handler!'
    assert resp.statusLine.statusCode == 200
    println resp.statusLine
    System.out << reader // print response stream
  }
  
  response.'401' = { resp ->  // fired only for a 401 (access denied) status code
    println 'access denied'
  }

  http.handler.'404' = { resp ->
    println "Page not found"
  }

// Used for all other failure codes not handled by a code-specific handler:
  http.handler.failure = { resp ->
    println "Unexpected failure: ${resp.statusLine}"
  }

}

 

分享到:
评论
2 楼 ncc 2014-06-27  


你应该把import也帐号出来
复制的代码调不能......


照顾下新手呀
1 楼 aaronluo 2009-03-10  
想请问下Groovy的每个module怎么下载呢?Groovy的官网上很多module但是找不到下载的地方

相关推荐

    Android应用源码之引用第三方库的方法.zip

    1. 添加仓库:大多数流行的Android库都会发布到Jcenter或Maven Central仓库。确保`build.gradle`(Project: Your_Project_Name)文件中的repositories块包含这些仓库: ```groovy allprojects { repositories { ...

    图书馆

    4. **RESTful API**:为了与其他系统交互,图书馆系统可能提供了一组RESTful API,使用Groovy的HTTP客户端库(如HTTPBuilder或RestClient)来接收和响应HTTP请求,实现图书的查找、预订和归还等功能。 5. **命令行...

    Android-一个用于Stetho的Realm模块可以通过Stetho在Chrome浏览器上查看Realm数据库

    这个项目可能是为了演示如何设置和使用Stetho Realm模块,包括如何创建和查询Realm对象,以及如何通过Stetho查看这些数据。 总之,结合使用Stetho和Realm,开发者可以更直观地查看和操作Android应用中的数据库,...

    Android基于HttpClient实现文件上传,提供进度条接口实现

    这可以通过克隆相关项目的Git仓库,然后将其作为项目中的模块导入。这样做的好处是可以直接修改源码以满足特定需求,但同时也增加了项目的复杂性和维护成本。 总的来说,通过HttpClient实现文件上传并提供进度显示...

    Android 端集成weex 仿小米有品.zip

    WXSDKEngine.initialize(this, new InitConfig.Builder() .setLogLevel(WXEnvironment.LOG_DEBUG) .build()); WXSDKInstance instance = new WXSDKInstance(this); instance.registerRenderListener(new ...

    oKHttp基本用法

    ```groovy dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.3' } ``` ### 2. 创建 OkHttpClient 实例 OkHttpClient 是 OkHttp 的核心组件,用于配置网络请求的全局设置,如超时、缓存策略等。...

    xutils 简单易理解的demo

    - **网络请求**:HttpUtils模块支持GET、POST等多种HTTP请求方式,同时提供异步和同步调用方式。 ## 2. 使用XUtils的步骤 ### 2.1 添加依赖 在项目的build.gradle文件中添加XUtils的依赖,通常是通过JitPack仓库...

    okhttp-3.9..1

    1. **连接复用**:OkHttp通过TCP连接池实现连接复用,避免了每次请求都创建新连接的开销,显著提升了网络性能。 2. **HTTP/2支持**:OkHttp支持HTTP/2协议,允许在一个TCP连接上并发处理多个请求,减少了延迟并提高...

    Twitter分享android推特分享

    Twitter为开发者提供了官方的Fabric SDK,其中包括了TwitterKit模块,它包含了分享功能所需的组件。要在Android Studio项目中添加这个依赖,你需要在`build.gradle`(Module: app)文件中添加以下代码: ```groovy ...

    okhttp3.13.1.zip

    1.3.50版本引入了一些新的特性和改进,如Kotlin/Native的多平台支持,以及对Java 8的更好兼容,使得Kotlin在跨平台开发中更具优势。 在实际项目中,我们可以将这三个库导入到工程的lib目录下,然后在build.gradle...

    OkHttp的封装和使用,以及OKhttp和Gson jar包

    对于Gradle构建系统,可以在app模块的build.gradle文件中添加如下依赖: ```groovy dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.3' } ``` 对于Gson库,同样在build.gradle文件中添加: ```...

    android中为imageView控件读取网图片源码

    在build.gradle模块文件中添加OkHttp依赖: ```groovy dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.0' } ``` 2. 实现网络请求: 创建一个方法,使用OkHttpClient发送GET请求获取图片的字节...

    android-修改头像

    通过合理的布局设计、图片处理以及网络请求,我们可以快速地在5分钟内构建出一个完整的功能模块。当然,实际应用中可能需要进一步优化,例如添加进度条、错误处理、用户反馈等,以提供更优秀的用户体验。

    Android集成百度地图接口,实现定位+路径规划。

    在Android Studio的`build.gradle`模块文件中,添加百度地图SDK的依赖。通常,你需要添加如下依赖: ```groovy implementation 'com.baidu.mapapi:baidumapapi:6.4.0' ``` 记得同步项目以下载依赖库。 2. **...

    Android-一款简洁漂亮的OkHttpLogging拦截器

    在你的build.gradle文件(模块级别)中,找到dependencies块,并添加以下依赖: ```groovy dependencies { implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3' } ``` 然后,你需要配置OkHttpClient...

    使用ShareSDK完成一键分享_android实现一键分享功能.zip

    在项目的app模块的`build.gradle`文件中,添加如下依赖(确保替换版本号为最新稳定版): ```groovy dependencies { implementation 'com.mob.tools:share:版本号' } ``` 然后,进行ShareSDK的初始化。在应用程序...

    android studio 下的mob短信验证

    在Android Studio的`build.gradle`模块文件中,我们需要添加相关的SDK库。例如,如果使用Mob服务,可能需要类似以下的依赖: ```groovy dependencies { implementation 'com.mob.tools:MobSDK:3.9.3' } ``` 同步...

    Android 头像上传至服务器 (OkHttpClient请求)

    1. 添加依赖:在项目的build.gradle文件(app模块)中,添加OkHttp的依赖库: ```groovy dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.2' // 检查最新版本 } ``` 2. 创建OkHttpClient实例:...

    RecyclerView的使用

    在build.gradle模块文件中,需要包含以下依赖: ```groovy dependencies { implementation 'androidx.recyclerview:recyclerview:1.2.1' } ``` 接着,需要在XML布局文件中添加RecyclerView: ```xml android:id=...

    用cropImageView实现对图片的裁剪

    如果你使用的是Gradle构建系统,可以在app模块的`build.gradle`文件中添加如下依赖: ```groovy dependencies { implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0' } ``` 接下来,你需要在...

Global site tag (gtag.js) - Google Analytics