现在很多新出的技术都需要访问介面,像什么第三方登入啊之类的
这个时候就少不了访问网络的工具类了啊,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