Class HttpConnection.Base<T extends Connection.Base>

    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) java.util.Map<java.lang.String,​java.lang.String> cookies  
      (package private) java.util.Map<java.lang.String,​java.util.List<java.lang.String>> headers  
      (package private) Connection.Method method  
      (package private) java.net.URL url  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private Base()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      T addHeader​(java.lang.String name, java.lang.String value)
      Add a header.
      java.lang.String cookie​(java.lang.String name)
      Get a cookie value by name from this request/response.
      T cookie​(java.lang.String name, java.lang.String value)
      Set a cookie in this request/response.
      java.util.Map<java.lang.String,​java.lang.String> cookies()
      Retrieve all of the request/response cookies as a map
      private static java.lang.String fixHeaderEncoding​(java.lang.String val)  
      private java.util.List<java.lang.String> getHeadersCaseInsensitive​(java.lang.String name)  
      boolean hasCookie​(java.lang.String name)
      Check if a cookie is present
      boolean hasHeader​(java.lang.String name)
      Check if a header is present
      boolean hasHeaderWithValue​(java.lang.String name, java.lang.String value)
      Test if the request has a header with this value (case insensitive).
      java.lang.String header​(java.lang.String name)
      Get the value of a header.
      T header​(java.lang.String name, java.lang.String value)
      Set a header.
      java.util.Map<java.lang.String,​java.lang.String> headers()
      Retrieve all of the request/response header names and corresponding values as a map.
      java.util.List<java.lang.String> headers​(java.lang.String name)
      Get the values of a header.
      private static boolean looksLikeUtf8​(byte[] input)  
      Connection.Method method()
      Get the request method
      T method​(Connection.Method method)
      Set the request method
      java.util.Map<java.lang.String,​java.util.List<java.lang.String>> multiHeaders()
      Retreive all of the headers, keyed by the header name, and with a list of values per header.
      T removeCookie​(java.lang.String name)
      Remove a cookie by name
      T removeHeader​(java.lang.String name)
      Remove headers by name.
      private java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>> scanHeaders​(java.lang.String name)  
      java.net.URL url()
      Get the URL
      T url​(java.net.URL url)
      Set the URL
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • url

        java.net.URL url
      • headers

        java.util.Map<java.lang.String,​java.util.List<java.lang.String>> headers
      • cookies

        java.util.Map<java.lang.String,​java.lang.String> cookies
    • Constructor Detail

      • Base

        private Base()
    • Method Detail

      • addHeader

        public T addHeader​(java.lang.String name,
                           java.lang.String value)
        Description copied from interface: Connection.Base
        Add a header. The header will be added regardless of whether a header with the same name already exists.
        Specified by:
        addHeader in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - Name of new header
        value - Value of new header
        Returns:
        this, for chaining
      • headers

        public java.util.List<java.lang.String> headers​(java.lang.String name)
        Description copied from interface: Connection.Base
        Get the values of a header.
        Specified by:
        headers in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - header name, case insensitive.
        Returns:
        a list of values for this header, or an empty list if not set.
      • fixHeaderEncoding

        private static java.lang.String fixHeaderEncoding​(java.lang.String val)
      • looksLikeUtf8

        private static boolean looksLikeUtf8​(byte[] input)
      • header

        public T header​(java.lang.String name,
                        java.lang.String value)
        Description copied from interface: Connection.Base
        Set a header. This method will overwrite any existing header with the same case insensitive name. (If there is more than one value for this header, this method will update the first matching header.
        Specified by:
        header in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - Name of header
        value - Value of header
        Returns:
        this, for chaining
        See Also:
        Connection.Base.addHeader(String, String)
      • hasHeader

        public boolean hasHeader​(java.lang.String name)
        Description copied from interface: Connection.Base
        Check if a header is present
        Specified by:
        hasHeader in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of header (case insensitive)
        Returns:
        if the header is present in this request/response
      • hasHeaderWithValue

        public boolean hasHeaderWithValue​(java.lang.String name,
                                          java.lang.String value)
        Test if the request has a header with this value (case insensitive).
        Specified by:
        hasHeaderWithValue in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - header name (case insensitive)
        value - value (case insensitive)
        Returns:
        if the header and value pair are set in this req/res
      • removeHeader

        public T removeHeader​(java.lang.String name)
        Description copied from interface: Connection.Base
        Remove headers by name. If there is more than one header with this name, they will all be removed.
        Specified by:
        removeHeader in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of header to remove (case insensitive)
        Returns:
        this, for chaining
      • headers

        public java.util.Map<java.lang.String,​java.lang.String> headers()
        Description copied from interface: Connection.Base
        Retrieve all of the request/response header names and corresponding values as a map. For headers with multiple values, only the first header is returned.

        Note that this is a view of the headers only, and changes made to this map will not be reflected in the request/response object.

        Specified by:
        headers in interface Connection.Base<T extends Connection.Base>
        Returns:
        headers
        See Also:
        Connection.Base.multiHeaders()
      • multiHeaders

        public java.util.Map<java.lang.String,​java.util.List<java.lang.String>> multiHeaders()
        Description copied from interface: Connection.Base
        Retreive all of the headers, keyed by the header name, and with a list of values per header.
        Specified by:
        multiHeaders in interface Connection.Base<T extends Connection.Base>
        Returns:
        a list of multiple values per header.
      • getHeadersCaseInsensitive

        private java.util.List<java.lang.String> getHeadersCaseInsensitive​(java.lang.String name)
      • scanHeaders

        private java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>> scanHeaders​(java.lang.String name)
      • cookie

        public java.lang.String cookie​(java.lang.String name)
        Description copied from interface: Connection.Base
        Get a cookie value by name from this request/response.

        Response objects have a simplified cookie model. Each cookie set in the response is added to the response object's cookie key=value map. The cookie's path, domain, and expiry date are ignored.

        Specified by:
        cookie in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of cookie to retrieve.
        Returns:
        value of cookie, or null if not set
      • cookie

        public T cookie​(java.lang.String name,
                        java.lang.String value)
        Description copied from interface: Connection.Base
        Set a cookie in this request/response.
        Specified by:
        cookie in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of cookie
        value - value of cookie
        Returns:
        this, for chaining
      • hasCookie

        public boolean hasCookie​(java.lang.String name)
        Description copied from interface: Connection.Base
        Check if a cookie is present
        Specified by:
        hasCookie in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of cookie
        Returns:
        if the cookie is present in this request/response
      • removeCookie

        public T removeCookie​(java.lang.String name)
        Description copied from interface: Connection.Base
        Remove a cookie by name
        Specified by:
        removeCookie in interface Connection.Base<T extends Connection.Base>
        Parameters:
        name - name of cookie to remove
        Returns:
        this, for chaining
      • cookies

        public java.util.Map<java.lang.String,​java.lang.String> cookies()
        Description copied from interface: Connection.Base
        Retrieve all of the request/response cookies as a map
        Specified by:
        cookies in interface Connection.Base<T extends Connection.Base>
        Returns:
        cookies