public final class Headers extends Object
Request
and Response
for interpreted headers. This class maintains the order of the header fields
within the HTTP message.
This class tracks header values line-by-line. A field with multiple comma- separated values on the same line will be treated as a field with a single value by this class. It is the caller's responsibility to detect and split on commas if their field permits multiple values. This simplifies use of single-valued fields whose values routinely contain commas, such as cookies or dates.
This class trims whitespace from values. It never returns values with leading or trailing whitespace.
Instances of this class are immutable. Use Headers.Builder
to create instances.
Modifier and Type | Class and Description |
---|---|
static class |
Headers.Builder |
Modifier and Type | Method and Description |
---|---|
long |
byteCount()
Returns the number of bytes required to encode these headers using HTTP/1.1.
|
boolean |
equals(Object other)
Returns true if
other is a Headers object with the same headers, with the same
casing, in the same order. |
String |
get(String name)
Returns the last value corresponding to the specified field, or null.
|
Date |
getDate(String name)
Returns the last value corresponding to the specified field parsed as an HTTP date, or null if
either the field is absent or cannot be parsed as a date.
|
Instant |
getInstant(String name)
Returns the last value corresponding to the specified field parsed as an HTTP date, or null if
either the field is absent or cannot be parsed as a date.
|
int |
hashCode() |
String |
name(int index)
Returns the field at
position . |
Set<String> |
names()
Returns an immutable case-insensitive set of header names.
|
Headers.Builder |
newBuilder() |
static Headers |
of(Map<String,String> headers)
Returns headers for the header names and values in the
Map . |
static Headers |
of(String... namesAndValues)
Returns headers for the alternating header names and values.
|
int |
size()
Returns the number of field values.
|
Map<String,List<String>> |
toMultimap() |
String |
toString() |
String |
value(int index)
Returns the value at
index . |
List<String> |
values(String name)
Returns an immutable list of the header values for
name . |
@Nullable public String get(String name)
@Nullable public Date getDate(String name)
@IgnoreJRERequirement @Nullable public Instant getInstant(String name)
public int size()
public String name(int index)
position
.public String value(int index)
index
.public List<String> values(String name)
name
.public long byteCount()
public Headers.Builder newBuilder()
public boolean equals(@Nullable Object other)
other
is a Headers
object with the same headers, with the same
casing, in the same order. Note that two headers instances may be semantically equal
but not equal according to this method. In particular, none of the following sets of headers
are equal according to this method:
1. Original
Content-Type: text/html
Content-Length: 50
2. Different order
Content-Length: 50
Content-Type: text/html
3. Different case
content-type: text/html
content-length: 50
4. Different values
Content-Type: text/html
Content-Length: 050
Applications that require semantically equal headers should convert them into a canonical form
before comparing them for equality.public static Headers of(String... namesAndValues)
Copyright © 2019. All rights reserved.