Class HttpResponse

java.lang.Object
com.azure.core.http.HttpResponse
All Implemented Interfaces:
Closeable, AutoCloseable

public abstract class HttpResponse extends Object implements Closeable

Represents an incoming HTTP response.

This class encapsulates an HTTP response, including the HTTP status code, headers, and body. It provides methods to get these properties.

This class is useful when you want to process an HTTP response received from a server. For example, you can use it to get the status code to check if the request was successful, get the headers to check for any additional information, and get the body to process the content of the response.

Note: This class implements Closeable, so you should call the close() method when you're done with the HTTP response to free any resources associated with it.

See Also:
  • Constructor Details

  • Method Details

    • getStatusCode

      public abstract int getStatusCode()
      Get the response status code.
      Returns:
      The response status code
    • getHeaderValue

      @Deprecated public abstract String getHeaderValue(String name)
      Deprecated.
      Use getHeaderValue(HttpHeaderName) as it provides better performance.
      Lookup a response header with the provided name.
      Parameters:
      name - the name of the header to lookup.
      Returns:
      the value of the header, or null if the header doesn't exist in the response.
    • getHeaderValue

      public String getHeaderValue(HttpHeaderName headerName)
      Lookup a response header with the provider HttpHeaderName.
      Parameters:
      headerName - the name of the header to lookup.
      Returns:
      the value of the header, or null if the header doesn't exist in the response.
    • getHeaders

      public abstract HttpHeaders getHeaders()
      Get all response headers.
      Returns:
      the response headers
    • getBody

      public abstract Flux<ByteBuffer> getBody()
      Get the publisher emitting response content chunks.

      Returns a stream of the response's body content. Emissions may occur on Reactor threads which should not be blocked. Blocking should be avoided as much as possible/practical in reactive programming but if you do use methods like block() on the stream then be sure to use publishOn before the blocking call.

      Returns:
      The response's content as a stream of ByteBuffer.
    • getBodyAsBinaryData

      public BinaryData getBodyAsBinaryData()
      Gets the BinaryData that represents the body of the response.

      Subclasses should override this method.

      Returns:
      The BinaryData response body.
    • getBodyAsByteArray

      public abstract Mono<byte[]> getBodyAsByteArray()
      Gets the response content as a byte[].
      Returns:
      The response content as a byte[].
    • getBodyAsString

      public abstract Mono<String> getBodyAsString()
      Gets the response content as a String.

      By default, this method will inspect the response body for containing a byte order mark (BOM) to determine the encoding of the string (UTF-8, UTF-16, etc.). If a BOM isn't found this will default to using UTF-8 as the encoding, if a specific encoding is required use getBodyAsString(Charset).

      Returns:
      The response content as a String.
    • getBodyAsString

      public abstract Mono<String> getBodyAsString(Charset charset)
      Gets the response content as a String.
      Parameters:
      charset - The Charset to use as the string encoding.
      Returns:
      The response content as a String.
    • getBodyAsInputStream

      public Mono<InputStream> getBodyAsInputStream()
      Gets the response content as an InputStream.
      Returns:
      The response content as an InputStream.
    • getRequest

      public final HttpRequest getRequest()
      Gets the request which resulted in this response.
      Returns:
      The request which resulted in this response.
    • buffer

      public HttpResponse buffer()
      Gets a new response object wrapping this response with its content buffered into memory.
      Returns:
      A new response with the content buffered.
    • writeBodyToAsync

      public Mono<Void> writeBodyToAsync(AsynchronousByteChannel channel)
      Transfers body bytes to the AsynchronousByteChannel.
      Parameters:
      channel - The destination AsynchronousByteChannel.
      Returns:
      A Mono that completes when transfer is completed.
      Throws:
      NullPointerException - When channel is null.
    • writeBodyTo

      public void writeBodyTo(WritableByteChannel channel) throws IOException
      Transfers body bytes to the WritableByteChannel.
      Parameters:
      channel - The destination WritableByteChannel.
      Throws:
      IOException - When I/O operation fails.
      NullPointerException - When channel is null.
    • close

      public void close()
      Closes the response content stream, if any.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable