Android网络操作

46 阅读2分钟

####1. Client & Server Client(平板、手机、PC)向Server发送Request, Server回馈给Client以Response(为客户端提供资源、数据);

####2.1. 网络协议 常用计算机网络协议一览:

简易的网络请求过程:

####2.2. URL解析

  • URL组成部分: Protocal 协议(http、https); domain name 域名(www.***.com); port 端口; 虚拟目录; 参数;

  • 如上图中,从https到2016整个儿是一个URL;
  • 接着是协议(protocol)、 子域(subdomain-域名的一部分,通常是一个网络、大学、公司等)、 主机名(hostname)、 Top level domain(TLD-顶级域名)
  • www.yourwebservice.com为止是连接到服务器根目录;
  • 接着是根目录下的路径(path)、文件(document);
  • default.aspx之后便是问号(?), 然后是参数;
  • 参数使用**键值对**的方式表达;

如此一个URL便准确地指向了服务器的某个资源; 例子:

####3.1. 从服务器获取数据

  1. 实例化一个URL对象;
  2. 获取HttpURLConnection对象;
  3. 设置请求连接属性;
  4. 获取响应码,判断连接结果码;
  5. 获取输入流并解析;

####3.2 GET & POST

  • 详细理论点击前往
  • 从传输意义上讲,POST是安全的,GET不安全:
    • GET把要传给服务器的参数直接放在URL后面(?键值对进行URL组装), URL参数可见,明文;
    • POST把数据封装起来,URL参数不可见;
  • 从本质意义上讲,GET是安全的,POST不安全:
    • GET没有更改服务器内容;
    • POST对服务器就行写入、覆盖,会更改服务器内容;
  • 幂等性(同样的一个操作,它一次或者多次地操作,对系统资源产生的影响是一样的)
    • GET具备幂等性;
    • POST不具备; (原因参照对服务器是否有修改)

####3.3 GET请求.demo代码实现 效果图:

  • 获取数据按钮:点击后,去请求一个接口,拿到数据;
  • 解析数据按钮:点击后,解析拿到的数据;
  • TextView:展示解析后的结果 点击获取数据: 点击解析数据: