久久天天躁狠狠躁夜夜免费观看,精品国产粉嫩内射白浆内射双马尾,久久国产欧美日韩精品,久久久久久性高,激情欧美成人久久综合

HttpClient 獲取詳細的頭信息

JSON 2016-08-22 17:55:02 35098

HTTP狀態(tài)查詢工具的代碼實現(xiàn)。

首先我用 HttpClient  嘗試過很多次,很多方法,請求頭的信息總是獲取不完全。后來發(fā)現(xiàn)這種方式獲取很詳細。直接上代碼。

/**
 * http狀態(tài)查詢
 * @return
 */
@SuppressWarnings("deprecation")
@RequestMapping(value="status",method=RequestMethod.GET)
public ModelAndView status(String url,ModelMap map){
	
	map.put("url", url);
	ModelAndView view = new ModelAndView("httpRequest/status");
	if(StringUtils.isNotBlank(url)){
		try {
			HttpClient client = new HttpClient();
			//請求超時
			client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6000); 
			//讀取超時
			client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 3000);
			client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");
			client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
			if(!url.startsWith("http://") || !url.startsWith("https://")){
				url= String.format("http://%s" ,url) ;
			}
			GetMethod method = new GetMethod(url);
			method.setRequestHeader("Connection","close");
			method.setRequestHeader("Referer", 
						"http://suancuo.cn");
			method.setRequestHeader("User-Agent", 
						"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0");

			int status = client.executeMethod(method);
			map.put("status",status);
			Header[] heads = method.getResponseHeaders();
			//獲取請求的Host,用于IP解析
			String host = method.getHostConfiguration().getHost();
			
			StringBuffer sb = new StringBuffer();
			for (Header header : heads) {
				sb.append("<p>")
					.append(header.getName())
						.append(" : ")
							.append(header.getValue())
								.append("</p>");
			}
			//頭信息
			map.put("head", sb.toString());
			String ip = "未知";
			try {
				InetAddress iAddress=InetAddress.getByName(host);
				ip = iAddress.getHostAddress();
				map.put("host", ip);
			} catch (Exception e) {
				LoggerUtils.fmtError(getClass(), e, "獲取IP地址失敗,域名:[%s]", host);
			}
		} catch (UnknownHostException e) {
			//域名錯誤
			map.put("message", "請輸入正確的網(wǎng)址");
			return view;
		} catch (SocketTimeoutException e) {
			//超時
			map.put("message", "請求地址超時");
			return view;
		} catch (Exception e) {
			//其他異常
			map.put("message", "請求出現(xiàn)未知異常,請重試!");
			return view;
		}
		
	}
	return view;
}

Demo:http://suancuo.cn/httpRequest/status/

下面是一些 Http status 。

1xx(臨時響應)

表示臨時響應并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。

代碼 說明

100 (繼續(xù)) 請求者應當繼續(xù)提出請求。 服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。

101 (切換協(xié)議) 請求者已要求服務器切換協(xié)議,服務器已確認并準備切換。

2xx (成功)

表示成功處理了請求的狀態(tài)代碼。

代碼 說明

200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網(wǎng)頁。

201 (已創(chuàng)建) 請求成功并且服務器創(chuàng)建了新的資源。

202 (已接受) 服務器已接受請求,但尚未處理。

203 (非授權信息) 服務器已成功處理了請求,但返回的信息可能來自另一來源。

204 (無內(nèi)容) 服務器成功處理了請求,但沒有返回任何內(nèi)容。

205 (重置內(nèi)容) 服務器成功處理了請求,但沒有返回任何內(nèi)容。

206 (部分內(nèi)容) 服務器成功處理了部分 GET 請求。

3xx (重定向)

表示要完成請求,需要進一步操作。 通常,這些狀態(tài)代碼用來重定向。

代碼 說明

300 (多種選擇) 針對請求,服務器可執(zhí)行多種操作。 服務器可根據(jù)請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。

301 (永久移動) 請求的網(wǎng)頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。

302 (臨時移動) 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。

303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。

304 (未修改) 自從上次請求后,請求的網(wǎng)頁未修改過。 服務器返回此響應時,不會返回網(wǎng)頁內(nèi)容。

305 (使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁。 如果服務器返回此響應,還表示請求者應使用代理。

307 (臨時重定向) 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。

4xx(請求錯誤)

這些狀態(tài)代碼表示請求可能出錯,妨礙了服務器的處理。

代碼 說明

400 (錯誤請求) 服務器不理解請求的語法。

401 (未授權) 請求要求身份驗證。 對于需要登錄的網(wǎng)頁,服務器可能返回此響應。

403 (禁止) 服務器拒絕請求。

404 (未找到) 服務器找不到請求的網(wǎng)頁。

405 (方法禁用) 禁用請求中指定的方法。

406 (不接受) 無法使用請求的內(nèi)容特性響應請求的網(wǎng)頁。

407 (需要代理授權) 此狀態(tài)代碼與 401(未授權)類似,但指定請求者應當授權使用代理。

408 (請求超時) 服務器等候請求時發(fā)生超時。

409 (沖突) 服務器在完成請求時發(fā)生沖突。 服務器必須在響應中包含有關沖突的信息。

410 (已刪除) 如果請求的資源已永久刪除,服務器就會返回此響應。

411 (需要有效長度) 服務器不接受不含有效內(nèi)容長度標頭字段的請求。

412 (未滿足前提條件) 服務器未滿足請求者在請求中設置的其中一個前提條件。

413 (請求實體過大) 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。

414 (請求的 URI 過長) 請求的 URI(通常為網(wǎng)址)過長,服務器無法處理。

415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。

416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會返回此狀態(tài)代碼。

417 (未滿足期望值) 服務器未滿足"期望"請求標頭字段的要求。

5xx(服務器錯誤)

這些狀態(tài)代碼表示服務器在嘗試處理請求時發(fā)生內(nèi)部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。

代碼 說明

500 (服務器內(nèi)部錯誤) 服務器遇到錯誤,無法完成請求。

501 (尚未實施) 服務器不具備完成請求的功能。 例如,服務器無法識別請求方法時可能會返回此代碼。

502 (錯誤網(wǎng)關) 服務器作為網(wǎng)關或代理,從上游服務器收到無效響應。

503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態(tài)。

504 (網(wǎng)關超時) 服務器作為網(wǎng)關或代理,但是沒有及時從上游服務器收到請求。

505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協(xié)議版本。


版權所屬:SO JSON在線解析

原文地址:http://suancuo.cn/blog/69.html

轉載時必須以鏈接形式注明原始出處及本聲明。

本文主題:

如果本文對你有幫助,那么請你贊助我,讓我更有激情的寫下去,幫助更多的人。

關于作者
一個低調(diào)而悶騷的男人。
相關文章
Java獲取瀏覽器請求(User-Agent),分析瀏覽器信息,系統(tǒng)信息的幾種辦法。
HttpClient獲取訪問域名的真實ip,HttpClient請求獲取目標IP地址
Java爬百度云觀測對網(wǎng)站的檢測數(shù)據(jù),獲取子域名及域名的安全信息
JavaScript對象詳細剖析
JavaScript對象詳細剖析
Maven的Mirror和Repository 的詳細講解
MySQL備份方案之Xtrabackup詳細解答
Java獲取域名,Java從URL地址中獲取域名,Java從Request 獲取域名
Spring JPA查詢,JPA 根據(jù)方法名字查詢詳細介紹
document.domain解決跨域問題,詳細講解。
最新文章
計算機網(wǎng)絡的相關內(nèi)容 354
SOJSON V6 JavaScript 解密技巧與分析 5940
微信客服人工電話95068:如何快速解封微信賬號(2025最新指南) 11885
Java Http請求,HttpURLConnection HTTP請求丟失頭信息,Head信息丟失解決方案 5052
實用API合集分享:教你輕松獲取IP地址的API合集 8839
Linux I/O重定向 6705
Ruby 循環(huán) - while、for、until、break、redo 和 retry 3990
Node.js:全局對象 3604
如何使用終端檢查Linux上的內(nèi)存使用情況 3779
JavaScript對象詳細剖析 3252
最熱文章
免費天氣API,天氣JSON API,不限次數(shù)獲取十五天的天氣預報 745370
最新MyEclipse8.5注冊碼,有效期到2020年 (已經(jīng)更新) 703112
蘋果電腦Mac怎么恢復出廠系統(tǒng)?蘋果系統(tǒng)怎么重裝系統(tǒng)? 678428
Jackson 時間格式化,時間注解 @JsonFormat 用法、時差問題說明 561958
我為什么要選擇RabbitMQ ,RabbitMQ簡介,各種MQ選型對比 511823
Elasticsearch教程(四) elasticsearch head 插件安裝和使用 483716
Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ... 299543
Java 信任所有SSL證書,HTTPS請求拋錯,忽略證書請求完美解決 246654
Elasticsearch教程(一),全程直播(小白級別) 232088
談談斐訊路由器劫持,你用斐訊路由器,你需要知道的事情 227528
支付掃碼

所有贊助/開支都講公開明細,用于網(wǎng)站維護:贊助名單查看

查看我的收藏

正在加載... ...