UTIL
package com.bwei.month_lianxi3.httputil; import android.os.Handler; import android.os.Message; import android.util.Log; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.Map; public class HttpUtils { private static final String TAG = "HttpUtils---"; private MyHandler myHandler = new MyHandler(); private static final int SUCCESS = 0; private static final int ERROR = 1; //單利 private static HttpUtils httpUtils = new HttpUtils(); private HttpUtilListener httpUtilsListener; private HttpUtils() { }//構造方法私有化 public static HttpUtils getInstance() { if (httpUtils == null) { httpUtils = new HttpUtils(); } return httpUtils; } //封裝get public void get(final String url) { new Thread() { @Override public void run() { try { URL u = new URL(url); HttpURLConnection connection = (HttpURLConnection) u.openConnection(); connection.setConnectTimeout(3000); if (connection.getResponseCode() == 200) { InputStream inputStream = connection.getInputStream(); String json = inputStream2String2(inputStream); //傳送資料 Message message = myHandler.obtainMessage(); message.what = SUCCESS; message.obj = json; myHandler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); Message message = myHandler.obtainMessage(); message.what = ERROR; message.obj = e.getMessage(); myHandler.sendMessage(message); } } }.start(); } class MyHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case SUCCESS: //成功 String json = (String) msg.obj; Log.d(TAG, "工具類資料: " + json); httpUtilsListener.getSuccess(json); break; case ERROR: //失敗 String error = (String) msg.obj; Log.d(TAG, "handleMessage: " + error); httpUtilsListener.getError(error); break; } } } //1.定義介面 public interface HttpUtilListener { void getSuccess(String json); void getError(String error); } //2.外部訪問的方法 public void setHttpUtilsListener(HttpUtilListener httpUtilsListener) { this.httpUtilsListener = httpUtilsListener; } //將流--字串 使用字元流--部分亂碼 public String inputStream2String2(InputStream inputStream) { InputStreamReader reader = new InputStreamReader(inputStream); BufferedReader br = new BufferedReader(reader); StringBuffer sr = new StringBuffer(); try { String s = null; while ((s = br.readLine()) != null) { sr.append(s); } } catch (Exception e) { e.printStackTrace(); } return sr.toString(); }
}
app
package com.bwei.month_lianxi3.myapp; import android.app.Application; import android.graphics.Bitmap; import android.os.Handler; import com.bwei.month_lianxi3.R; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer; public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); initImageLoader(); } private void initImageLoader() { //建立預設的ImageLoader 配置引數 ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this); ImageLoader.getInstance().init(configuration); } public static DisplayImageOptions getOptions() { DisplayImageOptions Options = new DisplayImageOptions.Builder() .cacheInMemory(true) // default .cacheOnDisk(true) // default .bitmapConfig(Bitmap.Config.RGB_565) // default .displayer(new SimpleBitmapDisplayer()) // default .displayer(new FadeInBitmapDisplayer(500)) .handler(new Handler()) // default .build(); return Options; } }
相關文章
- java.util.ConcurrentModificationExceptionJavaException
- jdbc Util 工具類JDBC
- java.util.PropertiesJava
- java.util.Date類Java
- java.util.concurrent.RejectedExecutionExceptionJavaException
- java util.Date 轉 LocalDateTimeJavaLDA
- Flutter Flame教程11 -- Util 工具Flutter
- 分析 java.util.Hashtable 原始碼Java原始碼
- util.promisify 的那些事兒
- java原始碼-java.util.ListJava原始碼
- 好用的java.util.Objects類JavaObject
- java.util.regex.Matcher 類的方法Java
- java.util.Arrays 快速使用介紹Java
- Util 應用框架 UI 全新升級框架UI
- Node.js util 模組解讀Node.js
- netty 之 非同步處理雙子星io.netty.util.concurrent.Future與io.netty.util.concurrent.PromiseNetty非同步Promise
- Util應用框架基礎(七) - 快取框架快取
- Util應用框架核心(一) - 服務配置框架
- Util應用框架核心(二) - 啟動器框架
- java.util.Date會被棄用嗎?Java
- 你不知道的 Node.js UtilNode.js
- java.util.function 中的 Function、Predicate、ConsumerJavaFunction
- java.util.Collection集合方法:Collections.BinarySearch 方法Java
- Util應用框架基礎(一) - 依賴注入框架依賴注入
- 一些很實用util工具函式函式
- Java Date Time 教程-java.util.Calendar和GregorianCalendarJavaGo
- [提問交流]求ORG.Util.Session類庫Session
- java.util.concurrent 併發包使用指南Java
- 專案中封裝的time_util常用的方法封裝
- Util應用框架核心(三) - 服務註冊器框架
- Util應用框架基礎(五) - 異常處理框架
- JDK1.8原始碼(十一)——java.util.TreeMap類JDK原始碼Java
- 解決String cannot be cast to java.util.List報錯ASTJava
- xv6 6.S081 Lab1: util
- php-util - 整理了部分常用php方法, composer安裝PHP
- GPU Memory Usage佔用而GPU-Util卻為0GPU
- tomcat啟動報錯java.util.zip.ZipException:invalidCENheader(badsignature)TomcatJavaExceptionHeader
- Util應用框架基礎(六) - 日誌記錄(一) - 正文框架