codecamp

OkHttps 简单示例

构建 HTTP

HTTP http = HTTP.builder().build();

  以上代码构建了一个最简单的HTTP实例,它拥有以下三个方法:

  • async(String url) 开始一个异步请求 (内部通过一个HTTP单例实现)
  • async() 开始一个异步HTTP任务,使用该方法必须在构建时设置 BaseUrl
  • sync(String url) 开始一个同步请求 (内部通过一个HTTP单例实现)
  • sync() 开始一个同步HTTP任务,使用该方法必须在构建时设置 BaseUrl
  • cancel(String tag) 按标签取消请求(内部通过一个HTTP单例实现)
  • cancelAll() 取消所有HTTP任务,包括同步和异步(内部通过一个HTTP单例实现)
  • request(Request request) OkHttp 原生请求 (该请求不经过 预处理器)
  • webSocket(Request request, WebSocketListener listener) WebSocket通讯

  为了使用方便,在构建的时候,我们更愿意指定一个BaseUrl(请参见5.1 设置 BaseUrl):

HTTP http = HTTP.builder()
        .baseUrl("http://api.demo.com")
        .build();

  为了简化文档,下文中出现的http均是在构建时设置了BaseUrlHTTP实例。

同步请求

  使用方法sync(String url)开始一个同步请求:

List<User> users = http.sync("/users") // http://api.demo.com/users
        .get()                         // GET请求
        .getBody()                     // 获取响应报文体
        .toList(User.class);           // 得到目标数据

  方法sync返回一个同步HttpTask,可链式使用。

异步请求

  使用方法async(String url)开始一个异步请求:

http.async("/users/1")                //  http://api.demo.com/users/1
        .setOnResponse((HttpResult result) -> {
            // 得到目标数据
            User user = result.getBody().toBean(User.class);
        })
        .get();                       // GET请求

  方法async返回一个异步HttpTask,可链式使用。

OkHttps 安装
OkHttps 请求方法(GET|POST|PUT|DELETE)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }