Class HttpParameters

java.lang.Object
oauth.signpost.http.HttpParameters
All Implemented Interfaces:
Serializable, Map<String,SortedSet<String>>

public class HttpParameters extends Object implements Map<String,SortedSet<String>>, Serializable
A multi-map of HTTP request parameters. Each key references a SortedSet of parameters collected from the request during message signing. Parameter values are sorted as per
invalid reference
://oauth.net/core/1.0a/#anchor13
. Every key/value pair will be percent-encoded upon insertion. This class has special semantics tailored to being useful for message signing; it's not a general purpose collection class to handle request parameters.
See Also:
  • Field Details

  • Constructor Details

    • HttpParameters

      public HttpParameters()
  • Method Details

    • put

      public SortedSet<String> put(String key, SortedSet<String> value)
      Specified by:
      put in interface Map<String,SortedSet<String>>
    • put

      public SortedSet<String> put(String key, SortedSet<String> values, boolean percentEncode)
    • put

      public String put(String key, String value)
      Convenience method to add a single value for the parameter specified by 'key'.
      Parameters:
      key - the parameter name
      value - the parameter value
      Returns:
      the value
    • put

      public String put(String key, String value, boolean percentEncode)
      Convenience method to add a single value for the parameter specified by 'key'.
      Parameters:
      key - the parameter name
      value - the parameter value
      percentEncode - whether key and value should be percent encoded before being inserted into the map
      Returns:
      the value
    • putNull

      public String putNull(String key, String nullString)
      Convenience method to allow for storing null values. put(java.lang.String, java.util.SortedSet<java.lang.String>) doesn't allow null values, because that would be ambiguous.
      Parameters:
      key - the parameter name
      nullString - can be anything, but probably... null?
      Returns:
      null
    • putAll

      public void putAll(Map<? extends String,? extends SortedSet<String>> m)
      Specified by:
      putAll in interface Map<String,SortedSet<String>>
    • putAll

      public void putAll(Map<? extends String,? extends SortedSet<String>> m, boolean percentEncode)
    • putAll

      public void putAll(String[] keyValuePairs, boolean percentEncode)
    • putMap

      public void putMap(Map<String,List<String>> m)
      Convenience method to merge a Mapinvalid input: '<'String, List>.
      Parameters:
      m - the map
    • get

      public SortedSet<String> get(Object key)
      Specified by:
      get in interface Map<String,SortedSet<String>>
    • getFirst

      public String getFirst(Object key)
      Convenience method for
      invalid @link
      {@link #getFirst(key, false)
      }.
      Parameters:
      key - the parameter name (must be percent encoded if it contains unsafe characters!)
      Returns:
      the first value found for this parameter
    • getFirst

      public String getFirst(Object key, boolean percentDecode)
      Returns the first value from the set of all values for the given parameter name. If the key passed to this method contains special characters, you MUST first percent encode it using OAuth.percentEncode(String), otherwise the lookup will fail (that's because upon storing values in this map, keys get percent-encoded).
      Parameters:
      key - the parameter name (must be percent encoded if it contains unsafe characters!)
      percentDecode - whether the value being retrieved should be percent decoded
      Returns:
      the first value found for this parameter
    • getAsQueryString

      public String getAsQueryString(Object key)
      Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.
      Parameters:
      key - the parameter name
      Returns:
      the query string
    • getAsQueryString

      public String getAsQueryString(Object key, boolean percentEncode)
      Concatenates all values for the given key to a list of key/value pairs suitable for use in a URL query string.
      Parameters:
      key - the parameter name
      percentEncode - whether key should be percent encoded before being used with the map
      Returns:
      the query string
    • getAsHeaderElement

      public String getAsHeaderElement(String key)
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<String,SortedSet<String>>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<String,SortedSet<String>>
    • size

      public int size()
      Specified by:
      size in interface Map<String,SortedSet<String>>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<String,SortedSet<String>>
    • clear

      public void clear()
      Specified by:
      clear in interface Map<String,SortedSet<String>>
    • remove

      public SortedSet<String> remove(Object key)
      Specified by:
      remove in interface Map<String,SortedSet<String>>
    • keySet

      public Set<String> keySet()
      Specified by:
      keySet in interface Map<String,SortedSet<String>>
    • values

      public Collection<SortedSet<String>> values()
      Specified by:
      values in interface Map<String,SortedSet<String>>
    • entrySet

      public Set<Map.Entry<String,SortedSet<String>>> entrySet()
      Specified by:
      entrySet in interface Map<String,SortedSet<String>>
    • getOAuthParameters

      public HttpParameters getOAuthParameters()