Android中从网络获取数据的方法
16lz
2021-01-26
在编写Android应用时,有时会需要从Internet上获取数据。 包括获取网页数据和文件数据。
1.获取网络上的网页数据 通过HttpURLConnection对象,从网络中获取网页数据.
2.获取网络上的文件数据
通过HttpURLConnection对象,可以从网络中获取文件数据.
1.获取网络上的网页数据 通过HttpURLConnection对象,从网络中获取网页数据.
URL url = new URL("http://www.sina.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5* 1000);//设置连接超时 conn.setRequestMethod("GET");//以get方式发起请求 if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败"); InputStream is = conn.getInputStream();//得到网络返回的输入流 String result = readData(is, "GBK"); conn.disconnect();
//第一个参数为输入流,第二个参数为字符集编码public static String readData(InputStream inSream, String charsetName) throws Exception{ByteArrayOutputStream outStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int len = -1;while( (len = inSream.read(buffer)) != -1 ){outStream.write(buffer, 0, len);}byte[] data = outStream.toByteArray();outStream.close();inSream.close();return new String(data, charsetName);}
2.获取网络上的文件数据
通过HttpURLConnection对象,可以从网络中获取文件数据.
URL url = new URL("http://photocdn.sina.com/xxx");//文件地址HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(5* 1000);conn.setRequestMethod("GET");if (conn.getResponseCode() != 200) throw new RuntimeException("请求url失败");InputStream is = conn.getInputStream();readAsFile(is, "Img269812337.jpg");public static void readAsFile(InputStream inSream, File file) throws Exception{FileOutputStream outStream = new FileOutputStream(file);byte[] buffer = new byte[1024];int len = -1;while( (len = inSream.read(buffer)) != -1 ){outStream.write(buffer, 0, len);} outStream.close();inSream.close();}
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- 一句话锁定MySQL数据占用元凶
- Android(安卓)与SQlite 数据库操作(新手步骤)
- Android之通过ContentProvider实现两个app(进程间)间通信以及函
- Android中,对SQLite的‘批处理’操作
- Android(安卓)onAttach 的使用
- [已解决]Android(安卓)ListView EditView 获取焦点问题
- android Configuration系统设置 .
- Android不使用第三方升级库实现应用升级