Android获取网页源代码
16lz
2021-01-23
1、首先在AndroidManifest中加入Internet权限:
<!-- 访问网络的权限 --><uses-permission android:name="android.permission.INTERNET"/>2、Activity中得代码如下:
public class GetHtmlCodeActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView textView = (TextView)this.findViewById(R.id.picture_textview); try { textView.setText(getPictureData("http://www.baidu.com"));} catch (Exception e) {Log.e("GetHtmlCodeActivity", e.toString());Toast.makeText(GetHtmlCodeActivity.this, "网络连接失败", 1).show();} } //得到图片的二进制数据 public String getPictureData(String path) throws Exception{ // 类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。URL url = new URL("http://www.baidu.com/");// 每个 HttpURLConnection 实例都可用于生成单个请求,//但是其他实例可以透明地共享连接到 HTTP 服务器的基础网络HttpURLConnection conn = (HttpURLConnection) url.openConnection();//设置 URL 请求的方法conn.setRequestMethod("GET");//设置一个指定的超时值(以毫秒为单位),//该值将在打开到此 URLConnection 引用的资源的通信链接时使用。conn.setConnectTimeout(5 * 1000);// conn.getInputStream()返回从此打开的连接读取的输入流InputStream inStream = conn.getInputStream();// 通过输入流获取html数据byte[] data = readInputStream(inStream);// 得到html的二进制数据String html = new String(data);return html; } //读取输入流中的数据,返回字节数组byte[] public byte[] readInputStream(InputStream inStream) throws Exception{ //此类实现了一个输出流,其中的数据被写入一个 byte 数组ByteArrayOutputStream outStream = new ByteArrayOutputStream();// 字节数组byte[] buffer = new byte[1024];int len = 0;//从输入流中读取一定数量的字节,并将其存储在缓冲区数组buffer 中while ((len = inStream.read(buffer)) != -1) {// 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流outStream.write(buffer, 0, len);}inStream.close();//toByteArray()创建一个新分配的 byte 数组。return outStream.toByteArray(); }}
更多相关文章
- Android 下陀螺仪、加速度和磁场传感器数据定义
- Android 动态添加view或item并获取数据
- android连接数据库sqllist基础操作学习:
- Android Studio HttpURLConnection 接收 JSON 数据
- 系统关闭GPRS数据流量和 GPS的方法
- 使用意图在Activity之间传递数据小插曲__传递自定义的序列化对象
- 简单的android数据类和Json转换(Data Json)
- Android 数据无限的List实现(滚动到底部,请求数据)
- Android实现读写JSON数据的方法