Dela via


HttpResponse Class

  • java.lang.Object
    • com.azure.core.http.HttpResponse

Implements

public abstract class HttpResponse
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.

Constructor Summary

Modifier Constructor Description
protected HttpResponse(HttpRequest request)

Creates an instance of HttpResponse.

Method Summary

Modifier and Type Method and Description
HttpResponse buffer()

Gets a new HttpResponse object wrapping this response with its content buffered into memory.

void close()

Closes the response content stream, if any.

abstract Flux<ByteBuffer> getBody()

Get the publisher emitting response content chunks.

BinaryData getBodyAsBinaryData()

Gets the BinaryData that represents the body of the response.

abstract Mono<byte[]> getBodyAsByteArray()

Gets the response content as a byte[].

Mono<InputStream> getBodyAsInputStream()

Gets the response content as an InputStream.

abstract Mono<String> getBodyAsString()

Gets the response content as a String.

abstract Mono<String> getBodyAsString(Charset charset)

Gets the response content as a String.

String getHeaderValue(HttpHeaderName headerName)

Lookup a response header with the provider HttpHeaderName.

abstract String getHeaderValue(String name)

Deprecated

Use getHeaderValue(HttpHeaderName headerName) as it provides better performance.

Lookup a response header with the provided name.

abstract HttpHeaders getHeaders()

Get all response headers.

final HttpRequest getRequest()

Gets the HttpRequest which resulted in this response.

abstract int getStatusCode()

Get the response status code.

void writeBodyTo(WritableByteChannel channel)

Transfers body bytes to the WritableByteChannel.

Mono<Void> writeBodyToAsync(AsynchronousByteChannel channel)

Transfers body bytes to the AsynchronousByteChannel.

Methods inherited from java.lang.Object

Constructor Details

HttpResponse

protected HttpResponse(HttpRequest request)

Creates an instance of HttpResponse.

Parameters:

request - The HttpRequest that resulted in this HttpResponse.

Method Details

buffer

public HttpResponse buffer()

Gets a new HttpResponse object wrapping this response with its content buffered into memory.

Returns:

A new HttpResponse with the content buffered.

close

public void close()

Closes the response content stream, if any.

getBody

public abstract Flux 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 getBodyAsByteArray()

Gets the response content as a byte[].

Returns:

The response content as a byte[].

getBodyAsInputStream

public Mono getBodyAsInputStream()

Gets the response content as an InputStream.

Returns:

The response content as an InputStream.

getBodyAsString

public abstract Mono 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 charset).

Returns:

The response content as a String.

getBodyAsString

public abstract Mono 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.

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.

getHeaderValue

@Deprecated
public abstract String getHeaderValue(String name)

Deprecated

Use getHeaderValue(HttpHeaderName headerName) 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.

getHeaders

public abstract HttpHeaders getHeaders()

Get all response headers.

Returns:

the response headers

getRequest

public final HttpRequest getRequest()

Gets the HttpRequest which resulted in this response.

Returns:

The HttpRequest which resulted in this response.

getStatusCode

public abstract int getStatusCode()

Get the response status code.

Returns:

The response status code

writeBodyTo

public void writeBodyTo(WritableByteChannel channel)

Transfers body bytes to the WritableByteChannel.

Parameters:

channel - The destination WritableByteChannel.

Throws:

IOException

- When I/O operation fails.

writeBodyToAsync

public Mono writeBodyToAsync(AsynchronousByteChannel channel)

Transfers body bytes to the AsynchronousByteChannel.

Parameters:

channel - The destination AsynchronousByteChannel.

Returns:

A Mono that completes when transfer is completed.

Applies to