1. 程式人生 > >獲取響應狀態Status信息、獲取狀態碼Status Code

獲取響應狀態Status信息、獲取狀態碼Status Code

數據 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