Android开发---网络连接基本操作

113 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情

一.配置项目

1.新建一个项目MyNetwork 2.在xml文件夹里新建一个xml文件 在这里插入图片描述

并且在里面写上如下的代码,用于配置一下网络安全标签这样的一个属性: 在这里插入图片描述

在清单文件里还需要配置一些内容:

在这里插入图片描述

首先在application里还是配置一下网络安全设置:

在这里插入图片描述

然后如果想要进行网络连接,我们需要打开权限:

在这里插入图片描述

以上基本的配置就已经配置好啦!

二.页面的绘制以及内部函数的设置

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">
    <Button
        android:layout_width="match_parent"
        android:onClick="getHtml"
        android:text="获取html"
        android:layout_height="wrap_content">
    </Button>
  

</LinearLayout>

运行一下可以看到初步的页面就是这样:

在这里插入图片描述

写一个函数,用于返回html的字符串函数:

String getHtml(String path){
        //定义url
            InputStream in = new
                    BufferedInputStream(conn.getInputStream());
//读取输入流中的数据
            int len = 0;
            byte[] buffer = new byte[1024];
            String tmp = "";
            while ((len=in.read(buffer))!=-1){
          String s = new String(buffer,0,len);
          tmp = tmp +s; }
            return tmp;
        } catch (Exception e) {
            e.printStackTrace();
            //出现异常就返回一个空的字符串
            return "";
        }

运行测试一下,这样就代表可以正常访问到一个网页了: 在这里插入图片描述

我们运行一下测试,发现会报错: 在这里插入图片描述 在这里插入图片描述 大体意思就是哪一个线程创建它就由哪个线程来操作它,其他线程不可以操作。

Hander原理图: 在这里插入图片描述 其实hander就相当于是一个中继器,如果有新的消息,消息监听就会检测到消息队列中的内容,此时hander就会调用handmessage函数,函数内部就是我们想要实现的逻辑内容,我们本程序的目的就是要更新ui。

那什么时候可以用到hander呢? 如果主线程和子线程之间不能进行通信,传递消息时,我们可以利用这个hander中继器来处理。

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情