Interface HttpResponse<T>

Interface HttpResponse

public interface HttpResponse<T>

HTTP 응답이에요. HttpResponse는 직접 생성되지 않고 HttpRequest를 보낸 결과로 반환돼요. HttpResponse는 응답 상태 코드와 헤더를 받았을 때, 그리고 일반적으로 응답 본문도 완전히 받은 후에 사용할 수 있게 돼요. HttpResponse가 응답 본문을 완전히 받기 전에 사용 가능하게 되는지 여부는 HttpRequest를 보낼 때 제공한 BodyHandler에 달려 있어요. 이 클래스는 응답 상태 코드, 헤더, 응답 본문, 그리고 이 응답에 해당하는 HttpRequest에 접근하기 위한 메서드를 제공해요. 다음은 응답을 String으로 가져오는 예시예요.

HttpResponse<String> response = client
        .send(request, BodyHandlers.ofString());

statusCode

int statusCode()

이 응답의 상태 코드를 반환해요.

  • Returns: 응답 코드

request

HttpRequest request()

이 응답에 해당하는 HttpRequest를 반환해요. 반환된 HttpRequest는 보낼 때 제공한 시작 요청(initiating request)이 아닐 수 있어요. 예를 들어 시작 요청이 리다이렉트되었다면 이 메서드가 반환하는 요청은 리다이렉트된 URI를 가지며, 이는 시작 요청 URI와 다를 거예요.

  • Returns: 요청
  • See Also: previousResponse()

previousResponse

Optional<HttpResponse<T>> previousResponse()

이전 중간 응답(intermediate response)을 받았다면 그것을 담은 Optional을 반환해요. 중간 응답은 리다이렉션이나 인증의 결과로 받는 응답이에요. 이전 응답이 없으면 빈 Optional이 반환돼요.

  • Returns: 있으면 HttpResponse를 담은 Optional

headers

HttpHeaders headers()

받은 응답 헤더를 반환해요.

  • Returns: 응답 헤더

body

T body()

본문을 반환해요. T의 타입에 따라, 반환된 본문은 읽힌 후의 본문을 나타낼 수 있고(예: byte[], String, Path) 또는 InputStream처럼 본문을 읽는 객체를 나타낼 수 있어요. 이 HttpResponsepreviousResponse() 호출에서 반환된 것이라면 이 메서드는 null을 반환해요.

  • Returns: 본문

sslSession

Optional<SSLSession> sslSession()

이 응답에 적용된 SSLSession을 담은 Optional을 반환해요. HTTPS 응답이 아니면 빈 Optional을 반환해요.

  • Returns: 응답과 연관된 SSLSession을 담은 Optional

uri

URI uri()

응답을 받은 URI를 반환해요. 리다이렉션이 발생했다면 요청 URI와 다를 수 있어요.

  • Returns: 응답의 URI

version

HttpClient.Version version()

이 응답에 사용된 HTTP 프로토콜 버전을 반환해요.

  • Returns: HTTP 프로토콜 버전