OkHttps 简单示例

2020-07-22 15:15 更新

构建 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,可链式使用。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号