现在很多新出的技术都需要访问介面,像什么第三方登入啊之类的

  这个时候就少不了访问网络的工具类了啊,jdk 也有自带的工具类 HttpUrlconnection

  我们来讲这个东西如何使用

  首先我们需要构建一个 URL 来获取,请求的地址把地址放在构造方法里面就好了

  第二步重头戏就来了 我们要构建一个 HTTPUrlconnection 物件,但是这个物件是没有构造方法的

  需要使用 URL 的 Openconnection 来建立

  建立完了之后呢 我们要设定请求的引数 (请求方法啊, 延迟啊, 输入输出流啊)

  1. get 请求

  引数是直接追加到 URl 里面的,由于要从它里面读取引数,所以他的 DoInput 就要设定为 true

  由于不用向它里面输出引数,所以他的 DoOutPut 引数就设定为 false

  由于 HTTP 快取用来提高效能,又由于 GET 与 POST 的诸多区别,get 的快取都被设定为 true

  由于 GET 请求,请求引数放到 URL 里面所以不存在主体部分所以就不存在 ContentType

  由于 GET 请求一次只传送一个 TCP 资料包, 所以就不用设定 Keep-alive

  设定重定向选择为 true

  2. POST 请求

  引数是不能放到 url 里面的, 所以说他要向 connections 输出引数,DoOutPut 引数就设定为 true

  由于他也要从 connections 读取引数,DoInput 设定为 true

  由于 HTTP 快取用来提高效能,又由于 GET 与 POST 的诸多区别,post 的快取都被设定为 true

  由于 POTS 请求一次只传送两个 TCP 资料包, 所以就要设定 Keep-alive

  设定重定向选择为 true

  把写好的引数使用 a=a&b=b 的方式当做字串放到 POST 请求的主题里面

  使用 connections 的 getOutPutStream 获得 PrintWriter 物件, 使用 write 输出引数,记得 flush 和 close

  读取响应都是一样的

  1. 状态码

  一般常见的状态码有 200 响应成功 301 资源被永久转移 404 找不到资源 500 服务器错误

  状态码一般有三个十进位制的数字组成, 第一个十进位制数字定义了状态码的型别, 共有五钟型别

  1** : 服务器收到请求,继续执行

  2** : 成功,操作被成功接受并处理

  3** : 重定向, 需要进一步操作

  4** : 客户端错误, 找不到资源

  5** : 服务器错误,处理过程中发生错误

  2. 服务器的响应

  读取资料都是用的 inputStream 我们可以把它转为 BufferReader 提高效能 ,

  使用 readline 回圈读取

  最后关闭连线

  connection.disconnection