Android单例模式封装HttpURLConnection网络工具类
16lz
2021-01-23
单例模式封装网络工具类
用途:通过封装工具类和接口回调的方式来获取网络数据
//单例模式public class NetUtils { private static final NetUtils ourInstance = new NetUtils(); public static NetUtils getInstance() { return ourInstance; } private NetUtils() { } public void getDataFromService(String url){ //向LoadData传递参数 new LoadData().execute(url); }//定义接口,接口回调 public interface NetCallBack{ void onSuccess(String result); } private NetCallBack netCallBack; public void setNetCallBack(NetCallBack netCallBack) { this.netCallBack = netCallBack; }//具体实现解析的方法(此处直接返回了json) class LoadData extends AsyncTask{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setConnectTimeout(5000); if (connection.getResponseCode()==HttpURLConnection.HTTP_OK){ return CharStreams.toString(new InputStreamReader(connection.getInputStream())); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { netCallBack.onSuccess(s); } }}
更多相关文章
- Activity的启动模式总结
- JNI之------C调用java接口
- Android9.0默认使用MTP模式
- Android 工具类的两种写法---单例模式与静态方法
- 【Android】Web开发之通过Apache接口处理Http请求
- android觀察者模式三種實現方法
- Android中Task任务栈的四种模式
- 设计模式—建造者模式及实例(BuilderPattern)
- Android全屏模式,沉浸模式。粘性沉浸模式