云炬Android开发笔记 5-3,4Restful请求的处理
2.Restful请求的处理-框架
【说明】首先要考虑网络请求的参数(url传入的值、文件、回调、及loder加载圈)
【说明】使用建造者模式,将建造者类和宿主类分开;
2.1【新建建造者类】
2.2【restClient类的参数的定义】
【restClient类的参数的定义】restClient类在每次Builder的时候会生成全新的实例,而里面的参数一次更改完毕,不允许二次更改;
2.3 【回调类】
【回调类】在网路请求之后,会存在网络请求之后的回调,比如:请求失败、请求异常、请求成功等;
[新建CallBack包,书写需要调用的接口]
2.4 完善RestClient
【完善com.flj.latte.net.RestClient】以Builder的形式构造出来了;
2.5 RestClientBuilder 对数据的设置
【说明】主要完成的数据的传递
2.6 RestClient的调用
2.7 RestClientBuilder的改进
2.7.1【改进1】【mParams】参数每次都会构建,比较繁琐;
【优化1】
【优化方法2】
【client修改】
2.8 requset请求
【新建callBack类】新建类并实现实现接口, 复写方法;
【部分源码】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】
2.9 使用方法
【测试】
【增加权限】
【测试】
【效果】通过get请求返回了数据
云炬Android开发笔记 5-3,4Restful请求的处理相关推荐
- 云炬Android开发笔记 3-2字体图标库集成与封装
1.项目:android-iconify点此链接到Github 这是一个字体图标库,用字体来代替很多图片. Android开发经常将很多本地图标放在drawable和mipmap文件夹下,这样有一些坏 ...
- 云炬Android开发笔记 3-1项目架构初始化
一.项目架构初始化 1.我们的应用只有一个activity,它里面是多个fragment进行切换的,这样的好处是应用会非常顺滑,并且一个activity也可以进行很多全局的处理. 在类前加上final ...
- 云炬Android开发笔记 11主界面-商品分类开发(多布局Section RecyclerView)
阅读目录 1. 分类页面结构解析和开发 1.1 布局的创建 1.2 布局的逻辑组合 2. 分类左侧列表数据解析与UI呈现 2.1 数据的转换 2.2[完善list列表逻辑] 3.多布局Section列 ...
- 云炬Android开发笔记 4单Activity界面架构设计与验证
1.4-2本应用没有使用多个activity进行界面的展示,而是通过一个activity管理多个fragment来进行处理. fragment里面有很多坑,推荐使用开源库fragmentation. ...
- 云炬Android开发笔记 6启动图功能开发与封装
阅读目录 1.启动图功能开发与封装(倒计时效果) 2. 持久化 3.倒计时工具库封装 4.第一个启动页面的倒计时 5.启动图功能开发与封装(轮播效果) 5.1 轮播图片的添加 5.2 指示器的添加 6 ...
- 云炬Android开发笔记 2-1项目初始化
一.项目基础 1.创建项目 修改完成后 2.修改具体项目的module名字 3.创建annotationmodule,一定要选择javalibrary.因为它的注解里面会使用很多标准的Java sdk ...
- 云炬Android开发笔记 17商品详情功能开发
阅读目录 1.商品详情ui框架设计 1.1 自定义圆形控件 1.2 底部栏的布局 1.3 整体布局 2.商品详情UI-MD风格伸缩渐变效果实现 2.1 ui的绑定 2.2 服务器中商品详情页的数据的取 ...
- 云炬Android开发笔记 16附加功能开发(二维码,一键分享,分页,搜索)
阅读目录 1.二维码高性能解决方案 1.1推荐的库的使用 1.2 扫描到数据回调的处理 2. 一键分享功能的使用 2.1 第三方功能的使用 2.2 逻辑增加 2.3 编译测试 3.分页功能实现 4. ...
- 云炬Android开发笔记 15评价晒单功能实现(自定义评分控件和仿微信自动多图选择控件)
阅读目录 1. 晒单评价 1.1 点击页面跳转的实现 1.2 自定义评价订单的布局实现 1.3 星星布局的实现 2. 仿微信自动多图及删除控件 2.1 属性值及控件的定义 2.2 图片初始化方法onM ...
最新文章
- 364 页 PyTorch 版《动手学深度学习》PDF 开源了(全中文,支持 Jupyter 运行)
- vs2013+EF6+Mysql
- netcore一键部署到linux服务器以服务方式后台运行
- AWS上的应用程序自动扩展–选项及其对性能的影响
- 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 8丨平面上的最近距离【难度中等】
- Java LinkedHashMap clear()方法与示例
- 微信群接龙报名小程序功能模块源码V1.1.38
- Skin++ 使用教程(VC软件外观美化工具)
- apache geode项目结构_使用IntelliJ IDEA+Maven 创建、开发、管理项目
- WPF DataGrid 获取选中的当前行某列值
- 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板)【含Matlab源码 858期】
- 在Matlab安装Vlfeat
- 阿里巴巴矢量图标库的引入——symbol类型的使用——阿里图标组件封装
- 应急响应入侵排查之第二篇Linux
- 如何在系统设置mysql环境变量(win11)
- msdia 80.dll的正确位置
- c++ 计算多图形面积
- cmake find_package 原理简介以及使用说明
- android 画圆形 bitmap,在android中画圆形图片的几种办法
- 【PANDA教程】PANDA详细教程笔记