簡體   English   中英

使用原生 Java 檢查 4xx Http 代碼

[英]check for 4xx Http Code with native Java

我有一些檢查 http 響應的 java 代碼。 現在,我想根據客戶端錯誤 (4xx) 系列檢查代碼,我該怎么做?

int responseCode = ab.sendGetRequest(href);

最簡單的解決方案是:

if (400 <= responseCode && responseCode < 500 ){
   //...
}

或者在編碼約定方面更好一些,但對可讀性大有幫助:

if (HttpStatus.SC_BAD_REQUEST <= responseCode && 
    responseCode < HttpStatus.SC_INTERNAL_SERVER_ERROR)

如何以某種方式檢查4xx系列的responseCode ,如下所示...

CLIENT_ERROR.contains(code)

重要的一點是,我不想使用自定義解決方案(編寫自己的CLIENT_ERROR或檢查范圍,...)。 為此目的,java中是否已經存在相應的類?

我現在實際上在使用javax.ws.rs.core.Response.Status.Family 謝謝@Kon 的有用提示!

import javax.ws.rs.core.Response.Status.Family;

if (Family.familyOf(responseCode) == Family.CLIENT_ERROR) {

如果使用 Spring,您可以簡單地執行以下操作:

    HttpStatus.valueOf(statusCode).is4xxClientError()

如果您需要任何額外的東西,您還可以查看is4xxClientError()實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM