現在很多新出的技術都需要訪問介面,像什麼第三方登入啊之類的
這個時候就少不了訪問網絡的工具類了啊,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