Nohttp框架在Android Studio中的使用
1、添加noHttp的使用权限
<!-- 读写 sd 卡 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 读取网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
2、依赖noHttp开发库
compile 'com.yolanda.nohttp:nohttp:1.1.0'
compile 'com.yanzhenjie.nohttp:okhttp:1.1.0'
nohttp的底层 1.httpurlconnection 2.okhttp
3、要求在Application对nohttp进行初始化
public class MyApp extends Application{
@Override
public void onCreate() {
super.onCreate();
// 步骤三。要求在 application 对 nohttp 进行初始化
// NoHttp.initialize(this);
//3.1. 创建框架的配置参数对象
NoHttp.Config config=new NoHttp.Config();
//3.2. 连接超时
config.setConnectTimeout(5000);
//3.3. 设置底层 , 底层是 OkHttp
config.setNetworkExecutor(new OkHttpNetworkExecutor());
NoHttp.initialize(this,config);
}
}
4、在清单文件中注册application
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:name=".MyApp"
5、创建请求并进行发送 处理服务端返回的数据
public class HttpUtil {
private static RequestQueue sRequestQueue;
public static void get(String url, OnResponseListener<String> listener) {
StringRequest request = new StringRequest(url, RequestMethod.GET);
if (sRequestQueue == null) {
//创建请求队列
sRequestQueue = NoHttp.newRequestQueue();
}
request.setCacheMode(CacheMode.NONE_CACHE_REQUEST_NETWORK);
sRequestQueue.add(0, request, listener);
}
}
注:StringRequest: 返回结果为 String(json/xml) 的请求,使用最广泛的请求对象
RequestQueue :用来发送请求的。支持子线程
OnResponseListener :回调对象 | 监听器 提供空方法来编写处理逻辑 ## 步骤五。调用例子
6、设置响应的监听
OnResponseListener<String> listener = new OnResponseListener<String>() {
// 网络请求开始的界面显示
@Override
public void onStart(int what) {
}
// 网络请求结束的界面显示
@Override
public void onFinish(int what) {
}
// 结果成功的情况
@Override
public void onSucceed(int what, Response<String> response) {
}
// 结果失败的情况
@Override
public void onFailed(int what, Response<String> response) {
}
};
Nohttp框架在Android Studio中的使用的更多相关文章
- 在Android Studio中进行单元测试和UI测试
本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio.能力有限,如有翻译 ...
- Android studio中导入第三方类库
常常在github上看到一些好用的框架,但是对于一个新手怎样在android studio上导入去总会遇到各种麻烦,索性来研究下第三方类库怎样在android studio上导入. 以我在github ...
- android studio 中移除module和恢复module
一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...
- Android Studio中Button等控件的Text中字符串默认大写的解决方法
初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是 ...
- .Net程序员之不学Java做安卓开发:Android Studio中的即时调试窗口
对学.Net的人来说,JAVA开发是一场噩梦. .net中的即时窗口,调试时直接在里面写代码,对程序中的各种方法/属性进行调用,很方便. Android Studio中找了好久,参考如下网址,也有类似 ...
- 如何将Eclipse中的项目迁移到Android Studio 中
如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...
- Android开发的小技巧,在Android Studio中使用Designtime Layout Attributes
在编写xml文件时,为了预览效果,经常会使用默认填上一些内容,比如TextView时,随便写上一个text <TextView ... android:text="Name:" ...
- 在android studio 中使用applicationid的问题
现在我需要对项目app的某个功能做性能测试,主要测试耗电量的多少. 1.我想到的方式是,我需要在同一台手机测试,同一个应用,需要安装在手机两次,第二次安装不覆盖第一次的安装. 在android stu ...
- Android studio 中的配置编译错误总结
1.编译Andorid 工程的时候,有时候出现gradle 报下面的错误. Error:(1, 0) Cause: com/android/build/gradle/LibraryPlugin : U ...
随机推荐
- 在 Cordova/Phonegap for Android 中包含中文文件名的页面
在 Cordova/Phonegap for Android 中包含中文文件名的页面 本贴首发于: http://xuekaiyuan.com/forum.php?mod=viewthread& ...
- FTP之虚拟用户
基于虚拟用户访问ftp关闭防火墙,selinux 过程如下1.装包,配置.起服务配置过程如下: 需写入vsftpd.conf配置文件中的内容如下: anonymous_enable=NO ---- 匿 ...
- 初级FTP搭建
一:了解FTP基本知识 Vsftpd 1.什么是FTP? File Transfer Protocol 基于C/S结构的文件传输协议2.使用什么协议?什么端口? TCP 21 建立命令链路 TCP 2 ...
- 微信--高效解决token及授权用户openid的持久化处理办法
摘要 关于微信开发的话题,例子确实已经有不少,但大部分都是人云亦云,很多小细节或者需要注意的地方却大多没有讲清楚,这令很多刚开始开发的人感觉大很迷茫.而我今天要说的话题,主要着眼于两个方面. 一:如 ...
- Curator Recipes(Cache&Counter)
Cache 路径缓存(Path Cache) 监视一个ZNode,当子节点增加.更新.删除改变状态时,路径缓存会在本地保存当前子节点及其数据和状态. public PathChildrenCache( ...
- 用备份控制文件做不完全恢复下的完全恢复(数据文件备份<旧>--新建表空间--控制文件备份<次新>--日志归档文件<新>)
为什么会使用备份的控制文件? 实际工作中主要有两种情况:第一种:当前控制文件全部损坏,而数据文件备份,控制文件备份及当前日志处于不同SCN版本,它们之间又增加过表空间(数据文件).第二种:当前控制文件 ...
- Error creating bean with name 'contentCategoryController': Injection of autowired dependencies failed;
在springmvc.spring.mybatis搭建的工程中出现了一大串错误 查了代码后发现,原来是在ContentCategoryServiceImpl中忘了写一句话@Service(),以至于因 ...
- [SOJ]Easy sort (归并排序)
Description You know sorting is very important. And this easy problem is: Given you an array with N ...
- django 学习笔记(一)搭建基础环境
1.安装django 下载地址 https://github.com/django/django 解压后进入文件夹运行指令 >> python setup.py install 2.创建工 ...
- WebTours服务的启动
简介: HP loadrunner自带的一个飞机系统订票网站. 启动服务的步骤: 1.启动StartServer.bat 所在的路径: (\HP LoadRunner 12.02 Community ...