獲取響應狀態Status信息、獲取狀態碼Status Code
阿新 • • 發佈:2017-10-07
數據 bootstra 9.png nts web not found sys 獲取 closeable
一般服務器的響應狀態有以下幾種:
200 正常
400 未找到頁面
403 拒絕
500 服務器錯誤
比如我們請求bootstrap中文網,
此時的狀態碼是200 OK表示正常,後面的from cache,表示從緩存數據庫(nosql數據庫)中取得的數據,不是從主站點關系型數據庫中取得的數據。
為何要這樣做,因為要做負載均衡。
這是我們再次刷新頁面,按F5或點擊刷新。
這個時候返回304 not modified,表示未修改。
可以避免接下來更多的數據庫查詢,並且沒有返回頁面內容而只是一個 HTTP Header,從而大大的降低帶寬的消耗,對於用戶的感覺也是提高。(假象)
常見做法:
第一次(首次)訪問 200
第二次F5刷新訪問 304
我們現在代碼中獲取狀態碼:
public class Demo { public static void main(String[] args) throws Exception { CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、創建實例 HttpGet httpGet=new HttpGet("http://www.bootcss.com"); //2、創建實例 httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0"); CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行 HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、獲取實體 System.out.println(closeableHttpResponse.getStatusLine()); //獲取狀態碼 closeableHttpResponse.close(); closeableHttpClient.close(); } }
運行結果:HTTP/1.1 200 OK
接下來我們訪問一個不存在的頁面:
HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html");
運行結果:HTTP/1.1 404 Not Found
實際我們只需要獲取code就行了也就是404或200這樣的關鍵信息。
public class Demo { public static void main(String[] args) throws Exception { CloseableHttpClient closeableHttpClient=HttpClients.createDefault(); //1、創建實例 HttpGet httpGet=new HttpGet("http://www.huimsoft.com/x/x.html"); //2、創建實例 httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0"); CloseableHttpResponse closeableHttpResponse=closeableHttpClient.execute(httpGet); //3、執行 HttpEntity httpEntity=closeableHttpResponse.getEntity(); //4、獲取實體 System.out.println(closeableHttpResponse.getStatusLine()); //獲取狀態信息 System.out.println(closeableHttpResponse.getStatusLine().getStatusCode()); //獲取狀態碼 closeableHttpResponse.close(); closeableHttpClient.close(); } }
運行結果:
HTTP/1.1 404 Not Found
404
即closeableHttpResponse.getStatusLine().getStatusCode()表示獲取狀態碼。
獲取響應狀態Status信息、獲取狀態碼Status Code