使用NOhttp的步骤:
0. 关联NOhttp
在build.gradle文件下dependencies里添加compile 'com.yolanda.nohttp:nohttp:1.1.0'
1. 初始化NOhttp.
自定义Application,对NoHttp进行初始化,
public class MyApplication extends Application {
@Override
public void onCreate() {
//NoHttp默认初始化
NoHttp.initialize(this);
super.onCreate();
}
}
在清单文件里注册自定义的Application.
2. 在清单文件里添加权限
<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" />
3. 创建一个队列,使用NOhttp的静态方法,创建消息请求,指定访问的网址,及请求网络的方式
String url="http://www.baidu.com";
//创建一个队列
RequestQueue queue = NoHttp.newRequestQueue();
//创建消息请求, 参数1 String字符串,传网址 参数2:指定请求的方式
//提示:(你们请求的数据是什么类型,就调用对应的方法,主要是中间的单词有区别)
Request<String> request = NoHttp.createStringRequest(url, RequestMethod.GET);
4. 利用队列去添加消息请求
queue.add(0, request, new OnResponseListener<String>() {
//请求开始时,回调的方法,一般做进度条对话框的加载
@Override
public void onStart(int what) {
}
//请求成功时,回调的方法,代码直接运行到主线程
@Override
public void onSucceed(int what, Response<String> response) {
}
//网络请求失败的回调,代码直接运行到主线程
@Override
public void onFailed(int what, Response<String> response) {
}
//网络请求成功,一般隐藏进度条对话框
@Override
public void onFinish(int what) {
}
});
提示:如果使用post请求,注意进行数据的add添加.上传数据