dependencies
compile 'com.yolanda.nohttp:nohttp:1.0.4'
初始化
- application
public class TestApp extends Application {
@Override
public void onCreate() {
super.onCreate();
NoHttp.initialize(this);
}
}
- activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
Logger.setDebug(true); //打開測試,可以查看,req resp 內容
requestQueue = NoHttp.newRequestQueue(3);
// 或者傳一個并發(fā)值,允許三個請求同時并發(fā)
}
- 權限
<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" />
get請求
@OnClick(R.id.bt_test_get)
public void test_get() {
Request<String> request = NoHttp.createStringRequest("http://ip.taobao.com/service/getIpInfo.php", RequestMethod.GET);
request.add("ip", "180.111.32.190");
request.addHeader("a", "b");
request.setCacheMode(CacheMode.ONLY_REQUEST_NETWORK);
request.setUserAgent(request.getUserAgent()+" android1234");
// 發(fā)起請求
requestQueue.add(0, request, this);
}
下載圖片
@OnClick(R.id.bt_test_image)
public void get_image(){
Request<Bitmap> request = NoHttp.createImageRequest("https://www.baidu.com/img/baidu_jgylogo3.gif");
request.setCacheMode(CacheMode.ONLY_READ_CACHE);
requestQueue.add(1, request, new OnResponseListener<Bitmap>() {
@Override
public void onStart(int what) {
}
@Override
public void onSucceed(int what, Response<Bitmap> response) {
iv.setImageBitmap(response.get());
}
@Override
public void onFailed(int what, String url, Object tag, Exception exception, int responseCode, long networkMillis) {
}
@Override
public void onFinish(int what) {
}
});
}
注意:
- 在activity 頁面發(fā)起的請求,需要在頁面關閉時,取消.
private Request<String> request;
@Override
protected void onDestroy() {
super.onDestroy();
if(request!=null)
request.cancel();
}
可以在baseActivity里面,提供一個隊列,每次調用請求,添加到隊列,頁面關掉時候,遍歷取消請求.
- Logger.setDebug(true); //打開測試,可以查看,req resp 內容
緩存模式
CacheMode.DEFAULT; //默認
CacheMode.NONE_CACHE_REQUEST_NETWORK; //沒有緩存,走網絡
CacheMode.ONLY_READ_CACHE;//僅緩存
CacheMode.ONLY_REQUEST_NETWORK;//僅網絡
CacheMode.REQUEST_NETWORK_FAILED_READ_CACHE;//網絡失敗下,走緩存
資料鏈接:http://blog.csdn.net/yanzhenjie1003/article/details/50679905