Android通过原生请求直接获取网页内容 您所在的位置:网站首页 安卓手机怎么修改网页内容 Android通过原生请求直接获取网页内容

Android通过原生请求直接获取网页内容

2024-06-17 06:26| 来源: 网络整理| 查看: 265

书接上一回,写了一个Android通过URL文件下载及文件名提取;以其简单受到其他小伙伴的赞许。今天刚好需要写一个安卓版的

网页内容获取功能。本来想上okhttp,但还是原生之美吧,简单就是最好的应用。

代码语言:javascript复制String requestUrl = "http://119.29.29.29/d?dn=www.baidu.com";// 新建一个URL对象 URL url = new URL(requestUrl);// 打开一个HttpURLConnection连接 StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();// 设置连接主机超时时间 urlConn.setConnectTimeout(5 * 1000);//设置从主机读取数据超时 urlConn.setReadTimeout(5 * 1000);// 设置是否使用缓存 默认是true urlConn.setUseCaches(true);// 设置为Post请求 urlConn.setRequestMethod("GET");//urlConn设置请求头信息 urlConn.setRequestProperty("Content-Type", "application/json"); //设置客户端与服务连接类型 urlConn.addRequestProperty("Connection", "Keep-Alive"); urlConn.connect(); // 开始连接 // 判断请求是否成功 if (urlConn.getResponseCode() == 200) { String result = streamToString(urlConn.getInputStream());//获取的内容 WriteLog.writeTxtToFile(AppTimeUtils.formatDate(new Date()) + ":" + "GetIP url=result=>"+result); String[] ipArr = result.split(";"); if (2 == ipArr.length && !"0".equals(ipArr[0])) { // 通过HTTPDNS获取IP成功,进行URL替换和HOST头设置 String ip = ipArr[0]; oldip="tcp://"+ip+":1883"; } } urlConn.disconnect();

简单介绍一下这个代码的功能,就是通过IP地址去解释网址,然后获得网址的真实IP。注意streamToString是通过输入流转为字符串,也是这里的重点,如果没有这个看到的都是乱码。放码。。。

代码语言:javascript复制private static String streamToString(InputStream is) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { baos.write(buffer, 0, len); } baos.close(); is.close(); byte[] byteArray = baos.toByteArray(); return new String(byteArray); } catch (Exception e) { Log.e(TAG, e.toString()); return null; } }

这样就完成一次安卓下简单的数据采集功能了。。。当然如果更大的应用就用okhttp吧。。比较真的不错,不能再错!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有