NoHttp使用小结
2017-02-06 本文已影响0人
Goorwl
-
配置信息
-
当底层使用
okhttp
时,配置如下代码compile 'com.yanzhenjie.nohttp:okhttp:1.1.0'
-
当底层使用
HttpURLConnection
时,配置如下代码compile 'com.yolanda.nohttp:nohttp:1.1.0'
-
-
在application中初始化【在清单文件中队application进行name标签声明】
NoHttp.initialize(this);
-
权限添加
<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" />
-
使用步骤:
-
1 创建请求队列【建议设置为单例模式,默认线程池为3】
RequestQueue requestQueue = NoHttp.newRequestQueue();
-
2 数据请求:
-
1 字符串类型请求
//创建请求要求 Request<String> stringRequset = NoHttp.createStringRequest("https://www.so.com", RequestMethod.GET); //添加监听结果 OnResponseListener<String> listener = new OnResponseListener<String>() { @Override public void onStart(int what) { } @Override public void onSucceed(int what, Response<String> response) { Log.e(TAG,Thread.currentThread().getName() + "onSucceed: " + response.get()); } @Override public void onFailed(int what, Response<String> response) { } @Override public void onFinish(int what) { } }; //添加任务 queue.add(0,stringRequset,listener);
-
2 加载图片
Request<Bitmap> requeset= NoHttp.createImageRequest("http://p2.so.qhmsg.com/sdr/1365_768_/t01c9a24439f573d6cc.jpg",RequestMethod.GET); OnResponseListener<Bitmap> listener = 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, Response<Bitmap> response) { } @Override public void onFinish(int what) { } }; //设置缓存模式 requeset.setCacheMode(CacheMode.REQUEST_NETWORK_FAILED_READ_CACHE); queue.add(1,requeset,listener);
-
3 下载文件
//单独的一个任务队列 DownloadQueue downQueue = NoHttp.getDownloadQueueInstance(); DownloadRequest request = NoHttp.createDownloadRequest("http://p2.so.qhmsg.com/sdr/1365_768_/t01c9a24439f573d6cc.jpg","/mnt/sdcard/photo",false); DownloadListener listener= new DownloadListener() { @Override public void onDownloadError(int what, Exception exception) { Log.e(TAG, "onDownloadError: " + Thread.currentThread().getName() + exception.getMessage()); } @Override public void onStart(int what, boolean isResume, long rangeSize, Headers responseHeaders, long allCount) { Log.e(TAG, "onStart: "+Thread.currentThread().getName()); } //更新进度 @Override public void onProgress(int what, int progress, long fileCount) { Log.e(TAG, "onProgress: "+progress); } @Override public void onFinish(int what, String filePath) { Toast.makeText(MainActivity.this, Thread.currentThread().getName()+"" + filePath, Toast.LENGTH_SHORT).show(); Log.e(TAG, "onFinish: " + filePath); Bitmap bitmap = BitmapFactory.decodeFile(filePath); iv1.setImageBitmap(bitmap); } @Override public void onCancel(int what) { } }; downQueue.add(0,request,listener);
-
-
-
未完待续...
-
注意:
- 返回结果可以使用
response.get()
获得 - 详细使用参看GitHub项目地址
- 返回结果可以使用