网络模块使用方法

Wafer Li ... 2016-10-14 工程
  • 工程
  • 大创
大约 1 分钟

# 调用步骤

# 1. 获取 ApiServices

通过 ApiManager.getServices() 获取 Apiservice 实例。

ApiServices services = ApiManager.getServices();
1

# 2. 通过 ApiServices 获取对应 API 的 Call 对象

第一步中获取到的 ApiServicesApiServices 接口的实例化对象。 通过调用其接口所定义的方法,获取对应网络 API 的 Call 对象

Call<Response> call = services.uploadMapGeoJsonCall(id, geoJsonObject);
1

对应的网络 API 及其说明请查看相应的后端文档。

# 3. 通过 Call 对象的方法来执行任务。

获取到 Call 对象并不意味着开始执行任务, 需要调用 Call 对象的对应方法来开启这一个网络请求任务。

执行 Call 任务的方法有两个

  1. 异步方法 推荐!!

    call.enqueue(new CallBack());
    
    1
  2. 同步方法

    call.execute();
    
    1

最好通过异步方法来开启任务。

# 4. 在 CallBack 中对结果进行响应。

# 4.1 onResponse() 方法

onResponse() 方法用来处理连通网络后的返回结果,包括 200 结果和其他 5xx,4xx 结果。

本项目对任何可 handle 的结果均返回 200 , 请务必通过 body 中的 isSuccess(), getErrorMsg() 来获取真正的网络响应状态。

# 4.2. onFailure() 方法

这个方法会回调任何的网络无法连通,body 解析错误的返回结果。