2.Restful请求的处理-框架

【说明】首先要考虑网络请求的参数(url传入的值、文件、回调、及loder加载圈)

【说明】使用建造者模式,将建造者类和宿主类分开;

2.1【新建建造者类】

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.2【restClient类的参数的定义】

【restClient类的参数的定义】restClient类在每次Builder的时候会生成全新的实例,而里面的参数一次更改完毕,不允许二次更改;

 云炬Android开发笔记 5-3,4Restful请求的处理

 

2.3 【回调类】

【回调类】在网路请求之后,会存在网络请求之后的回调,比如:请求失败、请求异常、请求成功等;

[新建CallBack包,书写需要调用的接口]

 云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.4 完善RestClient

【完善com.flj.latte.net.RestClient】以Builder的形式构造出来了;

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.5 RestClientBuilder 对数据的设置

【说明】主要完成的数据的传递

云炬Android开发笔记 5-3,4Restful请求的处理

 云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

 

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.6 RestClient的调用

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.7 RestClientBuilder的改进

 2.7.1【改进1】【mParams】参数每次都会构建,比较繁琐;

 云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

【优化1】

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

【优化方法2】

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

【client修改】
云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

 

2.8 requset请求

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

【新建callBack类】新建类并实现实现接口, 复写方法;

云炬Android开发笔记 5-3,4Restful请求的处理

【部分源码】com.flj.latte.net.callback.RequestCallbacks

 1 package com.flj.latte.net.callback;
 2 
 3 import android.os.Handler;
 4 
 5 import com.flj.latte.app.ConfigKeys;
 6 import com.flj.latte.app.Latte;
 7 import com.flj.latte.net.RestCreator;
 8 import com.flj.latte.ui.loader.LatteLoader;
 9 import com.flj.latte.ui.loader.LoaderStyle;
10 
11 import retrofit2.Call;
12 import retrofit2.Callback;
13 import retrofit2.Response;
18 
19 public final class RequestCallbacks implements Callback<String> {
20 
21     private final IRequest REQUEST;
22     private final ISuccess SUCCESS;
23     private final IFailure FAILURE;
24     private final IError ERROR;
25     private final LoaderStyle LOADER_STYLE;
26     private static final Handler HANDLER = Latte.getHandler();
27 
28     public RequestCallbacks(IRequest request, ISuccess success, IFailure failure, IError error, LoaderStyle style) {
29         this.REQUEST = request;
30         this.SUCCESS = success;
31         this.FAILURE = failure;
32         this.ERROR = error;
33         this.LOADER_STYLE = style;
34     }
35 
36     @Override
37     public void onResponse(Call<String> call, Response<String> response) {
38         if (response.isSuccessful()) {
39             if (call.isExecuted()) {
40                 if (SUCCESS != null) {
41                     SUCCESS.onSuccess(response.body());
42                 }
43             }
44         } else {
45             if (ERROR != null) {
46                 ERROR.onError(response.code(), response.message());
47             }
48         }
49 
50         onRequestFinish();
51     }
52 
53     @Override
54     public void onFailure(Call<String> call, Throwable t) {
55         if (FAILURE != null) {
56             FAILURE.onFailure();
57         }
58         if (REQUEST != null) {
59             REQUEST.onRequestEnd();
60         }
61 
62         onRequestFinish();
63     }

 【完善RestClient】 

 云炬Android开发笔记 5-3,4Restful请求的处理

 

2.9 使用方法

云炬Android开发笔记 5-3,4Restful请求的处理

【测试】

云炬Android开发笔记 5-3,4Restful请求的处理

云炬Android开发笔记 5-3,4Restful请求的处理

【增加权限】

云炬Android开发笔记 5-3,4Restful请求的处理

【测试】

云炬Android开发笔记 5-3,4Restful请求的处理

【效果】通过get请求返回了数据

云炬Android开发笔记 5-3,4Restful请求的处理

 

相关文章:

  • 2021-07-27
  • 2022-01-05
  • 2021-06-11
  • 2021-05-21
  • 2021-09-30
  • 2022-12-23
  • 2021-08-03
  • 2022-12-23
猜你喜欢
  • 2021-08-17
  • 2021-11-11
  • 2021-08-16
  • 2021-04-27
  • 2021-10-14
  • 2021-12-13
  • 2021-08-02
相关资源
相似解决方案