HttpHeaders Class

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

Implements

public class HttpHeaders
implements Iterable<HttpHeader>

Represents a collection of headers on an HTTP request or response.

This class encapsulates the headers of an HTTP request or response. It provides methods to add, set, get, and remove headers. It also provides methods to convert the headers to a Map, and to get a Stream representation of the headers.

Each header is represented by an HttpHeader instance, which encapsulates the name and value(s) of a header. If multiple values are associated with the same header name, they are stored in a single HttpHeader instance with values separated by commas.

Note: Header names are case-insensitive.

Constructor Summary

Constructor Description
HttpHeaders()

Create an empty HttpHeaders instance.

HttpHeaders(int initialCapacity)

Create a HttpHeaders instance with an initial size empty headers

HttpHeaders(Iterable<HttpHeader> headers)

Create a HttpHeaders instance with the provided initial headers.

HttpHeaders(Map<String,String> headers)

Create a HttpHeaders instance with the provided initial headers.

Method Summary

Modifier and Type Method and Description
HttpHeaders add(HttpHeaderName name, String value)

Adds a HttpHeader with the given name and value if a header with that name doesn't already exist, otherwise adds the value to the existing header.

HttpHeaders add(String name, String value)

Deprecated

Use add(HttpHeaderName name, String value) as it provides better performance.

Adds a HttpHeader with the given name and value if a header with that name doesn't already exist, otherwise adds the value to the existing header.

HttpHeader get(HttpHeaderName name)

Gets the HttpHeader for the provided header name.

HttpHeader get(String name)

Deprecated

Use get(HttpHeaderName name) as it provides better performance.

Gets the HttpHeader for the provided header name.

int getSize()

Gets the number of headers in the collection.

String getValue(HttpHeaderName name)

Get the value for the provided header name.

String getValue(String name)

Deprecated

Use getValue(HttpHeaderName name) as it provides better performance.

Get the value for the provided header name.

String[] getValues(HttpHeaderName name)

Get the values for the provided header name.

String[] getValues(String name)

Deprecated

Use getValue(HttpHeaderName name) as it provides better performance.

Get the values for the provided header name.

Iterator<HttpHeader> iterator()
HttpHeaders put(String name, String value)

Deprecated

Sets a HttpHeader with the given name and value.

HttpHeader remove(HttpHeaderName name)

Removes the HttpHeader with the provided header name.

HttpHeader remove(String name)

Deprecated

Use remove(HttpHeaderName name) as it provides better performance.

Removes the HttpHeader with the provided header name.

HttpHeaders set(HttpHeaderName name, String value)

Sets a HttpHeader with the given name and value.

HttpHeaders set(HttpHeaderName name, List<String> values)

Sets a HttpHeader with the given name and the list of values provided, such that the given values will be comma-separated when necessary.

HttpHeaders set(String name, String value)

Deprecated

Use set(HttpHeaderName name, String value) as it provides better performance.

Sets a HttpHeader with the given name and value.

HttpHeaders set(String name, List<String> values)

Deprecated

Use set(HttpHeaderName name, List<String> values) as it provides better performance.

Sets a HttpHeader with the given name and the list of values provided, such that the given values will be comma-separated when necessary.

HttpHeaders setAll(Map<String,List<String>> headers)

Sets all provided header key/values pairs into this HttpHeaders instance.

HttpHeaders setAllHttpHeaders(HttpHeaders headers)

Sets all headers from the passed headers into this HttpHeaders.

Stream<HttpHeader> stream()

Get a Stream representation of the HttpHeader values in this instance.

Map<String,String> toMap()

Returns a copy of the http headers as an unmodifiable Map representation of the state of the headers at the time of the toMap call.

String toString()

Methods inherited from java.lang.Object

Constructor Details

HttpHeaders

public HttpHeaders()

Create an empty HttpHeaders instance.

HttpHeaders

public HttpHeaders(int initialCapacity)

Create a HttpHeaders instance with an initial size empty headers

Parameters:

initialCapacity - the initial capacity of headers map.

HttpHeaders

public HttpHeaders(Iterable headers)

Create a HttpHeaders instance with the provided initial headers.

Parameters:

headers - the collection of initial headers

HttpHeaders

public HttpHeaders(Map headers)

Create a HttpHeaders instance with the provided initial headers.

Parameters:

headers - the map of initial headers

Method Details

add

public HttpHeaders add(HttpHeaderName name, String value)

Adds a HttpHeader with the given name and value if a header with that name doesn't already exist, otherwise adds the value to the existing header.

Parameters:

name - The name of the header.
value - The value of the header.

Returns:

The updated HttpHeaders object.

add

@Deprecated
public HttpHeaders add(String name, String value)

Deprecated

Use add(HttpHeaderName name, String value) as it provides better performance.

Adds a HttpHeader with the given name and value if a header with that name doesn't already exist, otherwise adds the value to the existing header.

Parameters:

name - The name of the header.
value - The value of the header.

Returns:

The updated HttpHeaders object.

get

public HttpHeader get(HttpHeaderName name)

Gets the HttpHeader for the provided header name. null is returned if the header isn't found.

Parameters:

name - the name of the header to find.

Returns:

the header if found, null otherwise.

get

@Deprecated
public HttpHeader get(String name)

Deprecated

Use get(HttpHeaderName name) as it provides better performance.

Gets the HttpHeader for the provided header name. null is returned if the header isn't found.

Parameters:

name - the name of the header to find.

Returns:

the header if found, null otherwise.

getSize

public int getSize()

Gets the number of headers in the collection.

Returns:

the number of headers in this collection.

getValue

public String getValue(HttpHeaderName name)

Get the value for the provided header name. null is returned if the header name isn't found.

Parameters:

name - the name of the header whose value is being retrieved.

Returns:

the value of the header, or null if the header isn't found

getValue

@Deprecated
public String getValue(String name)

Deprecated

Use getValue(HttpHeaderName name) as it provides better performance.

Get the value for the provided header name. null is returned if the header name isn't found.

Parameters:

name - the name of the header whose value is being retrieved.

Returns:

the value of the header, or null if the header isn't found

getValues

public String[] getValues(HttpHeaderName name)

Get the values for the provided header name. null is returned if the header name isn't found.

This returns getValue(String name) split by comma.

Parameters:

name - the name of the header whose value is being retrieved.

Returns:

the values of the header, or null if the header isn't found

getValues

@Deprecated
public String[] getValues(String name)

Deprecated

Use getValue(HttpHeaderName name) as it provides better performance.

Get the values for the provided header name. null is returned if the header name isn't found.

This returns getValue(String name) split by comma.

Parameters:

name - the name of the header whose value is being retrieved.

Returns:

the values of the header, or null if the header isn't found

iterator

public Iterator iterator()

put

@Deprecated
public HttpHeaders put(String name, String value)

Deprecated

Sets a HttpHeader with the given name and value.

If header with same name already exists then the value will be overwritten.

Parameters:

name - the name
value - the value

Returns:

The updated HttpHeaders object

remove

public HttpHeader remove(HttpHeaderName name)

Removes the HttpHeader with the provided header name. null is returned if the header isn't found.

Parameters:

name - the name of the header to remove.

Returns:

the header if removed, null otherwise.

remove

@Deprecated
public HttpHeader remove(String name)

Deprecated

Use remove(HttpHeaderName name) as it provides better performance.

Removes the HttpHeader with the provided header name. null is returned if the header isn't found.

Parameters:

name - the name of the header to remove.

Returns:

the header if removed, null otherwise.

set

public HttpHeaders set(HttpHeaderName name, String value)

Sets a HttpHeader with the given name and value. If a header with same name already exists then the value will be overwritten. If the given value is null, the header with the given name will be removed.

Parameters:

name - the name to set in the header. If it is null, this method will return with no changes to the headers.
value - the value

Returns:

The updated HttpHeaders object

set

public HttpHeaders set(HttpHeaderName name, List values)

Sets a HttpHeader with the given name and the list of values provided, such that the given values will be comma-separated when necessary. If a header with same name already exists then the values will be overwritten. If the given values list is null, the header with the given name will be removed.

Parameters:

name - the name
values - the values that will be comma-separated as appropriate

Returns:

The updated HttpHeaders object

set

@Deprecated
public HttpHeaders set(String name, String value)

Deprecated

Use set(HttpHeaderName name, String value) as it provides better performance.

Sets a HttpHeader with the given name and value. If a header with same name already exists then the value will be overwritten. If the given value is null, the header with the given name will be removed.

Parameters:

name - the name to set in the header. If it is null, this method will return with no changes to the headers.
value - the value

Returns:

The updated HttpHeaders object

set

@Deprecated
public HttpHeaders set(String name, List values)

Deprecated

Use set(HttpHeaderName name, List<String> values) as it provides better performance.

Sets a HttpHeader with the given name and the list of values provided, such that the given values will be comma-separated when necessary. If a header with same name already exists then the values will be overwritten. If the given values list is null, the header with the given name will be removed.

Parameters:

name - the name
values - the values that will be comma-separated as appropriate

Returns:

The updated HttpHeaders object

setAll

public HttpHeaders setAll(Map<>> headers)

Sets all provided header key/values pairs into this HttpHeaders instance. This is equivalent to calling headers.forEach(this::set), and therefore the behavior is as specified in set(String name, List<String> values). In other words, this will create a header for each key in the provided map, replacing or removing an existing one, depending on the value. If the given values list is null, the header with the given name will be removed. If the given name is already a header, it will be removed and replaced with the headers provided.

Use setAllHttpHeaders(HttpHeaders headers) if you already have an instance of HttpHeaders as it provides better performance.

Parameters:

headers - a map containing keys representing header names, and keys representing the associated values.

Returns:

The updated HttpHeaders object

setAllHttpHeaders

public HttpHeaders setAllHttpHeaders(HttpHeaders headers)

Sets all headers from the passed headers into this HttpHeaders.

This is the equivalent to calling headers.forEach(header -> set(header.getName(), header.getValuesList()) and therefore the behavior is as specified in set(String name, List<String> values).

If headers is null this is a no-op.

Parameters:

headers - The headers to add into this HttpHeaders.

Returns:

The updated HttpHeaders object.

stream

public Stream stream()

Get a Stream representation of the HttpHeader values in this instance.

Returns:

A Stream of all header values in this instance.

toMap

public Map toMap()

Returns a copy of the http headers as an unmodifiable Map representation of the state of the headers at the time of the toMap call. This map will not change as the underlying http headers change, and nor will modifying the key or values contained in the map have any effect on the state of the http headers.

Note that there may be performance implications of using Map APIs on the returned Map. It is highly recommended that users prefer to use alternate APIs present on the HttpHeaders class, over using APIs present on the returned Map class. For example, use the get(String name) API, rather than httpHeaders.toMap().get(name).

Returns:

the headers in a copied and unmodifiable form.

toString

public String toString()

Overrides:

HttpHeaders.toString()

Applies to