Record Class RequestHeaders

java.lang.Object
java.lang.Record
io.github.mahmoudimus.http3.RequestHeaders
Record Components:
method - :method
scheme - :scheme, or null for CONNECT
authority - :authority, or the host field when that is absent; null if neither is present
path - :path, or null for CONNECT
protocol - :protocol of an extended CONNECT (RFC 9220), such as websocket or connect-udp; null otherwise
fields - the regular fields in order (lower-case names; cookie crumbs joined into one field)
contentLength - the content-length, or -1 if absent

public record RequestHeaders(String method, String scheme, String authority, String path, String protocol, List<HeaderField> fields, long contentLength) extends Record
A validated HTTP/3 request header section: the control data from the pseudo-header fields and the remaining fields, as Http3Headers.toRequest(long, java.util.List<io.github.mahmoudimus.http3.HeaderField>) produces it.
  • Constructor Details

    • RequestHeaders

      public RequestHeaders(String method, String scheme, String authority, String path, String protocol, List<HeaderField> fields, long contentLength)
      Creates a request header section.
      Parameters:
      method - :method
      scheme - :scheme, or null
      authority - :authority (or host), or null
      path - :path, or null
      protocol - :protocol, or null
      fields - the regular fields, copied
      contentLength - the content-length, or -1
  • Method Details

    • isConnect

      public boolean isConnect()
      A CONNECT request, plain or extended.
      Returns:
      whether the method is CONNECT
    • isExtendedConnect

      public boolean isExtendedConnect()
      An extended CONNECT request: CONNECT with :protocol.
      Returns:
      whether :protocol is present
    • get

      public String get(String name)
      The value of the first field with this (lower-case) name, or null.
      Parameters:
      name - the field name
      Returns:
      the value, or null
    • getAll

      public List<String> getAll(String name)
      The values of every field with this (lower-case) name.
      Parameters:
      name - the field name
      Returns:
      the values, possibly none
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with '=='.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • method

      public String method()
      Returns the value of the method record component.
      Returns:
      the value of the method record component
    • scheme

      public String scheme()
      Returns the value of the scheme record component.
      Returns:
      the value of the scheme record component
    • authority

      public String authority()
      Returns the value of the authority record component.
      Returns:
      the value of the authority record component
    • path

      public String path()
      Returns the value of the path record component.
      Returns:
      the value of the path record component
    • protocol

      public String protocol()
      Returns the value of the protocol record component.
      Returns:
      the value of the protocol record component
    • fields

      public List<HeaderField> fields()
      Returns the value of the fields record component.
      Returns:
      the value of the fields record component
    • contentLength

      public long contentLength()
      Returns the value of the contentLength record component.
      Returns:
      the value of the contentLength record component