我们在做项目中一定少不了网络请求,如今非常多公司的网络请求这块好多都是使用一些比較好的开源框架,我项目中使用的是volley,如今讲讲一些volley主要的使用,假设想要具体的了解就要去看它的源代码了,如今贴代码讲一些它的使用了,

首先用一个类去封装下它的基本配置信息,以后须要变动的话,就直接在这里做改动,android最好能把每一个功能都独立出来,这样做改动的话 不会导致出现其它的bug,特别在有新员工进入到项目组中,分配任务沟通起来也省事,

ProtocolManager.java  它是一个单例

关键代码

private ProtocolManager(Context context){
initLoadBitmapConfig(context);
mQueue = Volley.newRequestQueue(context);
}

我们在调接口的时候 仅仅须要这样:

Map<String,String> param = new HashMap<String, String>();
param.put("checksum", 0+"");
ProtocolManager.getInstance().request(ProtocolEnum.URL_CONSTANCE_CONF_REGIONS,param,new RequestListener() {
@Override
public void onRequestSucess(String response) { if(!TextUtils.isEmpty(response)){
AllProvinceInfo provinceInfo = JsonHelper.json2Bean(response, AllProvinceInfo.class);
if(provinceInfo!=null&&provinceInfo.getRet()==1){
provinces = provinceInfo.getItems();
if(provinces!=null&&provinces.size()>0){
/**
* 把请求的json数据缓存到sd卡中
*/
DataManager.getInstance(UIUtils.getContext()).saveCacheStr(CACHE_AREA, response);
mHandler.sendEmptyMessage(AREA_CODE_SUCCESS);
}else {
mHandler.sendEmptyMessage(AREA_CODE_EMPTY);
}
}
}
}
@Override
public void onRequestFiled(String errorMsg) {
mHandler.sendEmptyMessage(AREA_CODE_FAIAL);
}
});
request中的方法
public  void request(ProtocolEnum protocolEnum,final Map<String,String> params
,final RequestListener listener){
int type = protocolEnum.type;
String url = protocolEnum.value;
switch (type) {
case ConfigManager.REQ_POST:
requestPost(url, params,listener, false);
break;
case ConfigManager.REQ_GET:
requestGet(url, params,listener, false);
break;
}
}

第一个參数是一个枚举,里面包括了这个url地址和请求方式

ProtocolEnum.java

public enum ProtocolEnum {
URL_PROFILE_INTRODUCTION_GET("user/profile/introduction",ConfigManager.REQ_GET);//下拉个人简单介绍 public String value;
public int type;
private ProtocolEnum(String value, int type) {
this.value = value;
this.type = type;
}
}

这就是怎样非常好的管理请求的URL,最后在Volley请求它会有个成功或者失败的回调,把json数据,这样以后我们新增一个接口,仅仅要copy,改一下返回的model对象就可以,这样开发效率大大的提高了

android 项目中使用到的网络请求框架以及怎样配置好接口URL的更多相关文章

  1. Android之封装好的异步网络请求框架

    1.简介  Android中网络请求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用这两个类库需要写大量的代码才能完成网络post和get请求,而使 ...

  2. Android网络请求框架

    本篇主要介绍一下Android中经常用到的网络请求框架: 客户端网络请求,就是客户端发起网络请求,经过网络框架的特殊处理,让后将请求发送的服务器,服务器根据 请求的参数,返回客户端需要的数据,经过网络 ...

  3. 基于Retrofit+RxJava的Android分层网络请求框架

    目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...

  4. Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

    最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所 ...

  5. android翻译应用、地图轨迹、视频广告、React Native知乎日报、网络请求框架等源码

    Android精选源码 android实现高德地图轨迹效果源码 使用React Native(Android和iOS)实现的 知乎日报效果源码 一款整合百度翻译api跟有道翻译api的翻译君 RxEa ...

  6. android项目中配置NDK自动编译生成so文件

    1 下载ndk开发包   2 在android 项目中配置编译器(以HelloJni项目为例)  2.1 创建builer  (a)Project->Properties->Builder ...

  7. Android 项目中文件夹的说明与作用(转)

    (转自:http://blog.csdn.net/goodshot/article/details/11529731) Android 项目中文件夹的作用 1. src:存放所有的*.java源程序. ...

  8. Android 网络请求框架android-async-http问题

    今天通过接口请求服务器的一些app数据,发现一个很奇怪的问题,请求一个链接的时候,通常在第一次请求发起的时候没有什么问题,能很快的拿到数据,但是 往后再去请求的时候就会等待很久,而且最后会请求失败,一 ...

  9. android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

    简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换. 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件. 1.下载工具 xstr ...

随机推荐

  1. 注册表:无法打开 XXX 由于某个错误无法打开该密钥。详细信息:拒绝访问

    错误原因:没有注册表用户权限. 正确添加用户权限的步骤如下:(跟着图片步骤) 右击该项,权限: 选中想要添加为当前所有者的用户后,点击应用.如果没用户显示,可以从“其他用户或组”中添加进来. 权限添加 ...

  2. C++对象模型--总结

    http://c.biancheng.net/cpp/biancheng/view/239.html 博客园有关C++内存布局,对象模型的文章. Effective C++ 绝不重写non-virtu ...

  3. 【转】20个令人敬畏的jQuery插件

    为网页设计师和开发推荐20个令人敬畏的jQuery插件.例如滑块,图像画廊,幻灯片插件,jQuery的导航菜单,jQuery文件上传,图像旋转器,标签的插件,用户界面​​元素,网络接触形式,模态窗口, ...

  4. js限制图片的大小

    <form id="financialForm" action="<%=basePath%>riskcontrol/website/review_bor ...

  5. Android UiAutomator 自动化测试环境搭建---新手1

    1.首先需要准备的工具有 1.java jdk 2. android开发工具 adt 3.ant 安装包(如果下载adt里面有) 2.首先安装java环境,jdk这个百度就可以了. 3.android ...

  6. Sublime 配置&插件推荐

    sublime 配置&插件推荐 Sublime编辑器的新鲜特性同时选中多个 先选中一个 再Command + D Command + P @搜索函数 #搜索关键字迷你地图 安装package ...

  7. C#手机充值

    C#手机充值系统开发(基于聚合数据) 说是手机充值系统有点装了,其实就是调用了聚合数据的支付接口,其实挺简单的事 但是我发现博客园竟然没有类似文章,我就个出头鸟把我的代码贡献出来吧 首先说准备工作: ...

  8. Wmic-linux

    Description Windows Management Instrumentation Command-line (WMIC) uses Windows Management Instrumen ...

  9. 从51跳新唐cortex学习3——细说新唐两种定时器

    的定时器我们已经是相当熟悉啦.但是,对于第一次接触新唐,第一次接触cortex的定时器一样,都是加1计数,但是功能和容量变大了),包括4个32位定时器(里面放24位的数据),还有分频功能.TMER0到 ...

  10. rsync、ssh备份

    Linux系统需求 为了实现这个备份程序,需要准备一个外部驱动器.您可以将备份写到一个外部USB磁盘,但这样做效率不高.因此,我假设您将备份写到位于网络某处的服务器中.这台服务器要为带有SSH和rsy ...