java發(fā)送http請求并獲取狀態(tài)碼的簡單實例
目前做項目中有一個需求是這樣的,需要通過java發(fā)送url請求,查看該url是否有效,這時我們可以通過獲取狀態(tài)碼來判斷。
try {
URL u = new URL("http://10.1.2.8:8080/fqz/page/qizha/pros_add.jsp");
try {
HttpURLConnection uConnection = (HttpURLConnection) u.openConnection();
try {
uConnection.connect();
System.out.println(uConnection.getResponseCode());
connect = true;
InputStream is = uConnection.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
while(br.read() != -1){
sb.append(br.readLine());
}
String content = new String(sb);
content = new String(content.getBytes("GBK"), "ISO-8859-1");
System.out.println(content);
br.close();
} catch (Exception e) {
connect = false;
e.printStackTrace();
System.out.println("connect failed");
}
} catch (IOException e) {
System.out.println("build failed");
e.printStackTrace();
}
} catch (MalformedURLException e) {
System.out.println("build url failed");
e.printStackTrace();
}
通過uConnection.getResponseCode()可以獲取狀態(tài)碼。進而判斷該網(wǎng)站是否存在。下面是不同狀態(tài)碼代表的意思。
http狀態(tài)返回代碼 1xx(臨時響應)
表示臨時響應并需要請求者繼續(xù)執(zhí)行操作的狀態(tài)代碼。
http狀態(tài)返回代碼 代碼 說明
100 (繼續(xù)) 請求者應當繼續(xù)提出請求。 服務器返回此代碼表示已收到請求的第一部分,正在等待其余部分。
101 (切換協(xié)議) 請求者已要求服務器切換協(xié)議,服務器已確認并準備切換。
http狀態(tài)返回代碼 2xx (成功)
表示成功處理了請求的狀態(tài)代碼。
http狀態(tài)返回代碼 代碼 說明
200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網(wǎng)頁。
201 (已創(chuàng)建) 請求成功并且服務器創(chuàng)建了新的資源。
202 (已接受) 服務器已接受請求,但尚未處理。
203 (非授權(quán)信息) 服務器已成功處理了請求,但返回的信息可能來自另一來源。
204 (無內(nèi)容) 服務器成功處理了請求,但沒有返回任何內(nèi)容。
205 (重置內(nèi)容) 服務器成功處理了請求,但沒有返回任何內(nèi)容。
206 (部分內(nèi)容) 服務器成功處理了部分 GET 請求。
http狀態(tài)返回代碼 3xx (重定向)
表示要完成請求,需要進一步操作。 通常,這些狀態(tài)代碼用來重定向。
http狀態(tài)返回代碼 代碼 說明
300 (多種選擇) 針對請求,服務器可執(zhí)行多種操作。 服務器可根據(jù)請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網(wǎng)頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉(zhuǎn)到新位置。
302 (臨時移動) 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
303 (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。
304 (未修改) 自從上次請求后,請求的網(wǎng)頁未修改過。 服務器返回此響應時,不會返回網(wǎng)頁內(nèi)容。
305 (使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁。 如果服務器返回此響應,還表示請求者應使用代理。
307 (臨時重定向) 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
http狀態(tài)返回代碼 4xx(請求錯誤)
這些狀態(tài)代碼表示請求可能出錯,妨礙了服務器的處理。
http狀態(tài)返回代碼 代碼 說明
400 (錯誤請求) 服務器不理解請求的語法。
401 (未授權(quán)) 請求要求身份驗證。 對于需要登錄的網(wǎng)頁,服務器可能返回此響應。
403 (禁止) 服務器拒絕請求。
404 (未找到) 服務器找不到請求的網(wǎng)頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內(nèi)容特性響應請求的網(wǎng)頁。
407 (需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似,但指定請求者應當授權(quán)使用代理。
408 (請求超時) 服務器等候請求時發(fā)生超時。
409 (沖突) 服務器在完成請求時發(fā)生沖突。 服務器必須在響應中包含有關(guān)沖突的信息。
410 (已刪除) 如果請求的資源已永久刪除,服務器就會返回此響應。
411 (需要有效長度) 服務器不接受不含有效內(nèi)容長度標頭字段的請求。
412 (未滿足前提條件) 服務器未滿足請求者在請求中設(shè)置的其中一個前提條件。
413 (請求實體過大) 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。
414 (請求的 URI 過長) 請求的 URI(通常為網(wǎng)址)過長,服務器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會返回此狀態(tài)代碼。
417 (未滿足期望值) 服務器未滿足"期望"請求標頭字段的要求。
http狀態(tài)返回代碼 5xx(服務器錯誤)
這些狀態(tài)代碼表示服務器在嘗試處理請求時發(fā)生內(nèi)部錯誤。 這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
http狀態(tài)返回代碼 代碼 說明
500 (服務器內(nèi)部錯誤) 服務器遇到錯誤,無法完成請求。
501 (尚未實施) 服務器不具備完成請求的功能。 例如,服務器無法識別請求方法時可能會返回此代碼。
502 (錯誤網(wǎng)關(guān)) 服務器作為網(wǎng)關(guān)或代理,從上游服務器收到無效響應。
503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。 通常,這只是暫時狀態(tài)。
504 (網(wǎng)關(guān)超時) 服務器作為網(wǎng)關(guān)或代理,但是沒有及時從上游服務器收到請求。
505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協(xié)議版本。
一些常見的http狀態(tài)返回代碼為:
200 - 服務器成功返回網(wǎng)頁
404 - 請求的網(wǎng)頁不存在
503 - 服務不可用
以上這篇java發(fā)送http請求并獲取狀態(tài)碼的簡單實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析ConcurrentHashMap: put方法源碼分析
ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06
springboot開啟Bean數(shù)據(jù)校驗功能
這篇文章主要介紹了springboot開啟Bean數(shù)據(jù)校驗功能,通過啟用Bean屬性校驗導入JSR303與Hibernate校驗框架坐標,使用@Validated注解啟用校驗功能,需要的朋友可以參考下2023-10-10
MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實現(xiàn)
本文主要介紹了MyBatis-Plus通用枚舉自動關(guān)聯(lián)注入的實現(xiàn),解決了繁瑣的配置,讓 mybatis 優(yōu)雅的使用枚舉屬性,感興趣的可以一起來了解一下2021-06-06
SpringBoot @Validated注解實現(xiàn)參數(shù)分組校驗的方法實例
這篇文章主要給大家介紹了關(guān)于SpringBoot @Validated注解實現(xiàn)參數(shù)分組校驗的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
詳解Spring/Spring boot異步任務編程WebAsyncTask
這篇文章主要介紹了詳解Spring/Spring boot異步任務編程WebAsyncTask,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
如何解決java.lang.NoClassDefFoundError:Could not initi
文章講述了在Java服務器中處理圖形元素時遇到的常見問題,即需要運行X-server,通過在Tomcat/bin/catalina.sh中增加JAVA_OPTS環(huán)境變量并設(shè)置-Djava.awt.headless=true,可以解決這個問題,使服務器能夠在沒有圖形界面的情況下運行2024-11-11

