首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 發送 HTTP 請求並獲取狀態碼的簡易實例

     編輯:Java 相關知識

Java 發送 HTTP 請求並獲取狀態碼的簡易實例

在專案開發中,常會遇到需要透過 Java 發送 URL 請求並檢查該 URL 是否有效的需求。此時可以透過獲取 HTTP 狀態碼來判斷。本文提供一個簡易的程式碼範例,並附上常見 HTTP 狀態碼的對照表供參考。

核心程式碼範例

try {
    URL u = new URL("https://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());
            boolean 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() 即可取得狀態碼,進而判斷目標網站是否存在。以下整理常見 HTTP 狀態碼分類與含義:

1xx 信息回應

表示臨時回應,要求請求者繼續執行操作。

代碼說明
100繼續:伺服器已收到請求的第一部分,正在等待其餘部分。
101切換協定:請求者已要求伺服器切換協定,伺服器已確認並準備切換。

2xx 成功

表示成功處理了請求的狀態碼。

代碼說明
200成功:伺服器已成功處理請求,通常表示提供了請求的網頁。
201已創建:請求成功且伺服器創建了新資源。
202已接受:伺服器已接受請求,但尚未處理。
203非授權信息:伺服器已成功處理請求,但返回的信息可能來自另一來源。
204無內容:伺服器成功處理請求,但未返回任何內容。
205重置內容:伺服器成功處理請求,但未返回任何內容。
206部分內容:伺服器成功處理了部分 GET 請求。

3xx 重定向

表示要完成請求,需要進一步操作,通常用於重定向。

代碼說明
300多種選擇:針對請求,伺服器可執行多種操作。
301永久移動:請求的網頁已永久移動到新位置。
302臨時移動:伺服器目前從不同位置回應請求,但請求者應繼續使用原有位置。
303查看其他位置:請求者應對不同位置使用單獨的 GET 請求檢索回應。
304未修改:自上次請求後,請求的網頁未修改過。
305使用代理:請求者只能使用代理訪問請求的網頁。
307臨時重定向:伺服器目前從不同位置回應請求,但請求者應繼續使用原有位置。

4xx 客戶端錯誤

表示請求可能出錯,妨礙了伺服器的處理。

代碼說明
400錯誤請求:伺服器不理解請求的語法。
401未授權:請求要求身份驗證。
403禁止:伺服器拒絕請求。
404未找到:伺服器找不到請求的網頁。
405方法禁用:禁用請求中指定的方法。
408請求超時:伺服器等待請求時發生超時。
409衝突:伺服器在完成請求時發生衝突。

5xx 伺服器錯誤

表示伺服器在嘗試處理請求時發生內部錯誤。

代碼說明
500伺服器內部錯誤:伺服器遇到錯誤,無法完成請求。
501未實作:伺服器不具備完成請求的功能。
502錯誤閘道:伺服器作為閘道或代理,從上游伺服器收到無效回應。
503服務不可用:伺服器目前無法使用(因超載或停機維護)。
504閘道超時:伺服器作為閘道或代理,但未及時從上游伺服器收到請求。
505HTTP 版本不支援:伺服器不支援請求中所用的 HTTP 協定版本。

常見狀態碼速查:
200 - 伺服器成功返回網頁
404 - 請求的網頁不存在
503 - 服務不可用

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved