Android之封装好的异步网络请求框架
生活随笔
收集整理的這篇文章主要介紹了
Android之封装好的异步网络请求框架
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.簡介?
Android中網絡請求一般使用Apache HTTP Client或者采用HttpURLConnection,但是直接使用這兩個類庫需要寫大量的代碼才能完成網絡post和get請求,而使用這個MyHttpUtils庫可以大大的簡化操作,它是基于HttpURLConnection,所有的請求都是獨立在UI主線程之外,沒有通過CommCallback回調方法處理請求結果, 沒有了子線程、沒有了handle,鏈式的變成使得代碼更加清晰 。
2.特性?
說明:java中一切皆對象,這里的JavaBean對象就是你請求接口之后返回的json數據所對應的實體,使用時返回的json數據可根據你給的對象自動解析并返回對象。
3.使用
gradle添加依賴(添加完之后Sync一下):
compile 'com.huangdali:myhttputils:2.0.2'get:
public void onGet() {String url = "http://gpj.zhangwoo.cn/app.php?platform=android&appkey=5a379b5eed8aaae531df5f60b12100cfb6dff2c1&c=member&a=getdepartments";new MyHttpUtils().url(url)//請求的url.setJavaBean(UserBean.class)//設置需要解析成的javabean對象.setReadTimeout(60000)//設置讀取超時時間,不設置的話默認為30s(30000).setConnTimeout(6000)//設置連接超時時間,不設置的話默認5s(5000).onExecute(new CommCallback<UserBean>() {//開始執行異步請求,傳入一個通用回調對象,泛型為返回的javabean對象 @Overridepublic void onSucess(UserBean bean) {//成功之后回調Util.showMsg(MainActivity.this, bean.getData().get(0).getDepartname());}@Overridepublic void onFailed(String msg) {//失敗時候回調Util.showMsg(MainActivity.this, msg);}});}Post:
public void onPost() {HashMap<String, String> param = new HashMap<>();param.put("c", "member");param.put("a", "getdepartments");new MyHttpUtils().url(urls2).addParam(param).setJavaBean(UserBean.class).onExecuteByPost(new CommCallback<UserBean>() {///實體類自動解析 @Overridepublic void onSucess(UserBean remarkBean) {Log.i("tag",remarkBean.toString());Util.showMsg(MainActivity.this, remarkBean.getData().get(0).getDepartname());}@Overridepublic void onFailed(String msg) {Util.showMsg(MainActivity.this, msg);}});}文件下載:
public void onDownload() {String url = "http://avatar.csdn.net/8/6/0/2_dickyqie.jpg";new MyHttpUtils().url(url).setFileSavePath("/sdcard/downloadtest")//不要這里只是填寫文件保存的路徑,不包括文件名哦.setReadTimeout(5 * 60 * 1000)//由于下載文件耗時比較大,所以設置讀取時間為5分鐘.downloadFile(new CommCallback<String>() {@Overridepublic void onSucess(String msg) {Util.showMsg(MainActivity.this, msg);}@Overridepublic void onFailed(String s) {}/*** 可以重寫進度回調方法* @param total* @param current*/@Overridepublic void onDownloading(long total, long current) {tvProgress.setText("當前進度:" + new DecimalFormat("######0.00").format(((double) current / total) * 100) + "%");}});}別忘加網絡權限
<uses-permission android:name="android.permission.INTERNET" />文件上傳和下載也需要添加權限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />?
源碼點擊下載: https://github.com/DickyQie/android-network-request
轉載于:https://www.cnblogs.com/zhangqie/p/6367056.html
總結
以上是生活随笔為你收集整理的Android之封装好的异步网络请求框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 损坏注册表的原因
- 下一篇: Unity性能优化的N种武器