HttpRequest Class

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

public class HttpRequest

Represents an outgoing HTTP request.

This class encapsulates an HTTP request, including the HTTP method, URL, headers, and body. It provides methods to set and get these properties.

This class is useful when you want to create an HTTP request to send to a server. For example, you can use it to create a GET request to retrieve a resource, a POST request to create a resource, a PUT request to update a resource, or a DELETE request to delete a resource.

Note: This class provides a copy() method to create a copy of the HTTP request. This is useful when you want to modify the HTTP request without affecting the original request.

Constructor Summary

Constructor Description
HttpRequest(HttpMethod httpMethod, String url)

Create a new HttpRequest instance.

HttpRequest(HttpMethod httpMethod, URL url)

Create a new HttpRequest instance.

HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers)

Create a new HttpRequest instance.

HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers, BinaryData body)

Create a new HttpRequest instance.

HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers, Flux<ByteBuffer> body)

Create a new HttpRequest instance.

Method Summary

Modifier and Type Method and Description
HttpRequest copy()

Creates a copy of the request.

Flux<ByteBuffer> getBody()

Get the request content.

BinaryData getBodyAsBinaryData()

Get the request content.

HttpHeaders getHeaders()

Get the request headers.

HttpMethod getHttpMethod()

Get the request method.

URL getUrl()

Get the target address.

HttpRequest setBody(byte[] content)

Set the request content.

HttpRequest setBody(BinaryData content)

Set request content.

HttpRequest setBody(String content)

Set the request content.

HttpRequest setBody(Flux<ByteBuffer> content)

Set request content.

HttpRequest setHeader(HttpHeaderName headerName, String value)

Set a request header, replacing any existing value.

HttpRequest setHeader(String name, String value)

Deprecated

Use setHeader(HttpHeaderName headerName, String value) instead as is offers better performance.

Set a request header, replacing any existing value.

HttpRequest setHeaders(HttpHeaders headers)

Set the request headers.

HttpRequest setHttpMethod(HttpMethod httpMethod)

Set the request method.

HttpRequest setUrl(String url)

Set the target address to send the request to.

HttpRequest setUrl(URL url)

Set the target address to send the request to.

Methods inherited from java.lang.Object

Constructor Details

HttpRequest

public HttpRequest(HttpMethod httpMethod, String url)

Create a new HttpRequest instance.

Parameters:

httpMethod - the HTTP request method
url - the target address to send the request to

HttpRequest

public HttpRequest(HttpMethod httpMethod, URL url)

Create a new HttpRequest instance.

Parameters:

httpMethod - the HTTP request method
url - the target address to send the request to

HttpRequest

public HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers)

Create a new HttpRequest instance.

Parameters:

httpMethod - the HTTP request method
url - the target address to send the request to
headers - the HTTP headers to use with this request

HttpRequest

public HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers, BinaryData body)

Create a new HttpRequest instance.

Parameters:

httpMethod - the HTTP request method
url - the target address to send the request to
headers - the HTTP headers to use with this request
body - the request content

HttpRequest

public HttpRequest(HttpMethod httpMethod, URL url, HttpHeaders headers, Flux body)

Create a new HttpRequest instance.

Parameters:

httpMethod - the HTTP request method
url - the target address to send the request to
headers - the HTTP headers to use with this request
body - the request content

Method Details

copy

public HttpRequest copy()

Creates a copy of the request.

The main purpose of this is so that this HttpRequest can be changed and the resulting HttpRequest can be a backup. This means that the cloned HttpHeaders and body must not be able to change from side effects of this HttpRequest.

Returns:

a new HTTP request instance with cloned instances of all mutable properties.

getBody

public Flux getBody()

Get the request content.

Returns:

the content to be sent

getBodyAsBinaryData

public BinaryData getBodyAsBinaryData()

Get the request content.

Returns:

the content to be sent

getHeaders

public HttpHeaders getHeaders()

Get the request headers.

Returns:

headers to be sent

getHttpMethod

public HttpMethod getHttpMethod()

Get the request method.

Returns:

the request method

getUrl

public URL getUrl()

Get the target address.

Returns:

the target address

setBody

public HttpRequest setBody(byte[] content)

Set the request content.

The Content-Length header will be set based on the given content's length.

Parameters:

content - the request content

Returns:

this HttpRequest

setBody

public HttpRequest setBody(BinaryData content)

Set request content.

If provided content has known length, i.e. getLength() returns non-null then Content-Length header is updated. Otherwise, if provided content has unknown length, i.e. getLength() returns null then the caller must set the Content-Length header to indicate the length of the content, or use Transfer-Encoding: chunked.

Parameters:

content - the request content

Returns:

this HttpRequest

setBody

public HttpRequest setBody(String content)

Set the request content.

The Content-Length header will be set based on the given content's length.

Parameters:

content - the request content

Returns:

this HttpRequest

setBody

public HttpRequest setBody(Flux content)

Set request content.

Caller must set the Content-Length header to indicate the length of the content, or use Transfer-Encoding: chunked.

Parameters:

content - the request content

Returns:

this HttpRequest

setHeader

public HttpRequest setHeader(HttpHeaderName headerName, String value)

Set a request header, replacing any existing value. A null for value will remove the header if one with matching name exists.

Parameters:

headerName - the header name
value - the header value

Returns:

this HttpRequest

setHeader

@Deprecated
public HttpRequest setHeader(String name, String value)

Deprecated

Use setHeader(HttpHeaderName headerName, String value) instead as is offers better performance.

Set a request header, replacing any existing value. A null for value will remove the header if one with matching name exists.

Parameters:

name - the header name
value - the header value

Returns:

this HttpRequest

setHeaders

public HttpRequest setHeaders(HttpHeaders headers)

Set the request headers.

Parameters:

headers - the set of headers

Returns:

this HttpRequest

setHttpMethod

public HttpRequest setHttpMethod(HttpMethod httpMethod)

Set the request method.

Parameters:

httpMethod - the request method

Returns:

this HttpRequest

setUrl

public HttpRequest setUrl(String url)

Set the target address to send the request to.

Parameters:

url - target address as a String

Returns:

this HttpRequest

setUrl

public HttpRequest setUrl(URL url)

Set the target address to send the request to.

Parameters:

url - target address as URL

Returns:

this HttpRequest

Applies to