Java Enum 문제 풀어보기2

다음 http 처리하는 HttpStatus 열거형 만들어보기

HTTP 상태 코드 종류

  • OK
    • code: 200
    • message: "OK"
  • BAD
    • code: 400
    • message: "Bad Request"
  • NOT_FOUND
    • code: 404
    • message: "Not Found"
  • INTERNAL_SERVER_ERROR
    • code: 500
    • message: "Internal Server Error"

문제 풀이

참고로 http 코드는 정상 응답을 200으로 준다. 요청을 잘못보냈다면 400을 건네주고 없는 페이지는 404 를 건넨다. 또는 서버에 문제를 제대로 처리 못할 시 500 코드를 반환한다.

HttpStatus.class

public enum HttpStatus {
    OK(200, "OK"),
    BAD(400, "Bad Request"),
    NOT_FOUND(404, "Not Found"),
    INTERNAL_SERVER_ERROR(500, "Internal Server Error"),;

    private final int code;
    private final String message;
    HttpStatus(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    public boolean isSuccess() {
        return code >= 200 && code < 300;
    }
}

Main.class

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.print("HTTP Code: ");
        int inCode = sc.nextInt();
        sc.nextLine();

        HttpStatus http = HttpStatus.findByCode(inCode);

        if (http == null) {
            System.out.println("잘못된 코드입니다.");
        } else {
            System.out.println(http.getCode() + " " + http.getMessage());
            System.out.println("Success? " + http.isSuccess());
        }
    }
}

200 입력

HTTP Code:
200
200 OK
Success? true

400 입력

HTTP Code: 400
400 Bad Request
Success? false

500 입력

HTTP Code: 500
500 Internal Server Error
Success? false