Volley的使用(二)

  刚说完夜深了,狗都睡了,邻居的小狗又开始狺狺狂吠了,都这个点了,洗洗睡吧,接着上文详解。

  HttpProcessManager,一般的网络框架都可以封装到这个类里面,先声明一个单例,接着放写StringRequest的请求函数。


public class HttpProcessManager {public static HttpProcessManager instance = null;public static HttpProcessManager getInstance() {if (null == instance) {synchronized (HttpProcessManager.class) {if (null == instance) {instance = new HttpProcessManager();}}}return instance;}public StringRequest loginUser(String url, final String user_telno, final String user_pass) {StringRequest request = new StringRequest(Request.Method.POST, url,new Response.Listener() {@Overridepublic void onResponse(String arg0) {//这里处理返回的结果,http200的时候,一般接口都会给你返回个Json串,你愿意怎么解析就怎么解析return;}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError arg0) {//网络出错看这里,打日志,写异常,都随你return;}}) {@Overrideprotected Map<String, String> getParams() throws AuthFailureError {//传递参数Map <String, String> map = new HashMap <String, String>();map.put(Constant.TELNO, user_telno);map.put(Constant.PASS, user_pass);return map;}};return request;}}

####  代码量稍微有点多(?),前面声明单例,中间创建队列,最后说一下,这里使用的是POST方法,最少需要封装一个map去传递参数,Volley使用post是稍微有点怪,不过还好,其他的方法直接复制粘贴即可。
####  VolleyManager代码量稍微少点,

public class VolleyManager { public class VolleyManager { private RequestQueue mRequestQueue; private static Context context;
public static VolleyManager instance = null;
private VolleyManager(Context context) {this.context = context;mRequestQueue = getRequestQueue();}public static VolleyManager getInstance(Context context) {if (null == instance) {synchronized (VolleyManager.class) {if (null == instance) {instance = new VolleyManager(context);}}}return instance;
}public RequestQueue getRequestQueue() {if (mRequestQueue == null) {mRequestQueue = Volley.newRequestQueue(context.getApplicationContext());}return mRequestQueue;
}public <T> void addToRequestQueue(Request<T> req) {getRequestQueue().add(req);
}

}

}

  VolleyManager先声明单例,接着声明获取VolleyManager的单例方法,然后获取队列,最后添加到队列。

  最后简单说一下Constant类,顾名思义,存放常亮的类,HOST,CODE,等等,固定内容,会频繁重复使用的东西都可以放到这里,个人习惯将网络请求的URL放在Constant,也见过将URL存在HttpProcessManager里的,因人而异吧,感觉都可以,看你习惯是常亮类内容乱一点,还是网络类内容乱一点。最后再注意一下:

private static String HOST = "http://xxxx.xxxx.xxxx/";
private static String USER_LOGIN = "User/login";
public static String HOST_USER_LOGIN = HOST + USER_LOGIN; 

  推荐使用以上方式保存URL,主机名+行为,方便更改线上线下地址,还可以轻松更改URL的动作。先说到这,有空再整理一下,让内容够下一篇。

网络框架的封装(二)相关推荐

  1. Retrofit网络框架的封装使用

    retrofit的使用实例(封装以后比较简单明了) //联网登录请求的使用Map<String, String> map = new HashMap<>();map.put(& ...

  2. Android网络框架okhttp3简单封装

    1:在demo得build文件中添加依赖(这里以3.8.1版本为例) dependencies {compile 'com.squareup.okhttp3:okhttp:3.8.1' } 2:对网络 ...

  3. MVVM+Retrofit+Kotlin网络框架封装

    上篇文章讲了MVVM入门,网络请求部分非常简单和原始,本篇则是上一篇的进阶,主要讲解如何在vm中使用协程结合Retrofit进行网络框架的封装. GitHub完整版:https://github.co ...

  4. 【OkHttp】OkHttp 源码分析 ( 网络框架封装 | OkHttp 4 迁移 | OkHttp 建造者模式 )

    OkHttp 系列文章目录 [OkHttp]OkHttp 简介 ( OkHttp 框架特性 | Http 版本简介 ) [OkHttp]Android 项目导入 OkHttp ( 配置依赖 | 配置 ...

  5. 网络模块优化方案(1)——封装网络框架

    这篇文章是在去年写的,当时带领团队对旗下两款app进行了重构.由于业务需求较多,所以我们采用了两套方案同时进行: 1.业务模块:在功能迭代的同时进行重构,主要工作是代码优化.提取封装.依赖整理等. 2 ...

  6. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

  7. 上门洗车APP --- Android客户端开发 之 网络框架封装介绍(一)

    上门洗车APP --- Android客户端开发 之 网络框架封装介绍(一) 上篇文章中给大家简单介绍了一些业务,上门洗车APP --- Android客户端开发 前言及业务简介,本篇文章给大家介绍下 ...

  8. iOS三维菜单、调试工具、封装通讯录、网络框架、多种控件和动画等源码

    iOS精选源码 一个调用系统通讯录和获取通讯录所有联系人的封装 ios scrollview嵌套tableview同向滑动(初级.进阶), 支持OC / Swift WKWebView常用设置及进度条 ...

  9. IOS网络框架的Alamofire5.4高版本网络工具封装

    IOS网络框架的Alamofire5.4高版本网络工具封装 网上一般的封装都是过期的swift写法,或者低版本的Alamofire,照搬照抄只会报错一大堆.令开发者很是头疼.特此公开最新的网络工具封装 ...

最新文章

  1. 提高网站有效流量从三个方面出发
  2. linux使用总结一
  3. PL/SQL在win7/win8 x64位下使用客户端连接oracle
  4. 基于Nginx的媒体服务器技术
  5. 虚拟化关键技术及解决方案
  6. numpy.random模块常用函数
  7. setResult详解
  8. 幼儿园视频监控系统设计方案
  9. CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
  10. linux之tar使用技巧
  11. java常见类型的转化以及风险
  12. 五子棋初步以及对五子棋的局面估值
  13. Sketch 54.1 Shark 鲨鱼中文汉化特别版 Mac 设计师必备的原型UI设计工具
  14. react PC端 适配 自适应
  15. 数据库原理必背简答题【计算机考研复试】
  16. 使用机器学习模型预测贷款资格
  17. P3426 [POI2005]SZA-Template(kmp+dp)
  18. DDR存储原理,AC/DC判别标准深度解析(官方手册整理)
  19. Apache BookKeeper
  20. install - graph-tool

热门文章

  1. MaterialApp
  2. 【福利】 | 你的《自己动手设计物联网》签名版已经准备好了
  3. Windows Mobile 5.0 的探讨
  4. python列表去重效率_你应该学会的python列表去重
  5. 开工大吉:与 Apache Pulsar 社区成员相约 2023 QCon·北京站
  6. html里文字垂直对齐属性,word设置文本垂直对齐方式有几种
  7. gearman php 分布式,gearman分布式处理系统
  8. PHP开发APP接口(六):APP版本升级以及APP演示
  9. fileitem方法_Java FileItem.write方法代码示例
  10. 单片机c语言左移的作用,单片机C语言左移和右移的方法