public class HttpUtils { private static final String TAG = "HttpUtils"; private final static int SUCCESS = 0; private final static int ERROR = 1; private static HttpUtils httpUtils = new HttpUtils(); private static HttpUtilsListener httpUtilsListener; private MyHandler myHandler = new MyHandler(); public static HttpUtils getInstance(){ if(httpUtils==null){ httpUtils = new HttpUtils(); } return httpUtils; } 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(5000); if(connection.getResponseCode()==200){ InputStream inputStream = connection.getInputStream(); String json = InputStrem2String2(inputStream); Message message = myHandler.obtainMessage(); message.what = SUCCESS; message.obj = json; myHandler.sendMessage(message); }else{ Message message = myHandler.obtainMessage(); message.what = ERROR; message.obj = "失败"; 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, "handleMessage: "+json); httpUtilsListener.getDataSUCCESS(json); break; case ERROR: String error = (String) msg.obj; Log.d(TAG, "handleMessage: "+error); httpUtilsListener.getDataERROR(error); break; } } } public String InputStrem2String(InputStream inputStream) throws IOException { int len = 0; byte[] b = new byte[1024]; StringBuffer stringBuffer = new StringBuffer(); while ((len = inputStream.read(b))!=-1){ String s = new String(b,0,len); stringBuffer.append(s); } return stringBuffer.toString(); } public String InputStrem2String2(InputStream inputStream) throws IOException { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuffer stringBuffer = new StringBuffer(); String s = null; while ((s = bufferedReader.readLine())!=null){ stringBuffer.append(s); } return stringBuffer.toString(); } //接口回调 public interface HttpUtilsListener{ void getDataSUCCESS(String json); void getDataERROR(String error); } public void setHttpUtilsListener(HttpUtilsListener httpUtilsListener) { HttpUtils.httpUtilsListener = httpUtilsListener; } }
常用工具类HttpUtils
最新推荐文章于 2024-04-21 09:53:21 发布