Class UrlEncodedParser

java.lang.Object
com.google.api.client.http.UrlEncodedParser
All Implemented Interfaces:
ObjectParser

public class UrlEncodedParser extends Object implements ObjectParser
Implements support for HTTP form content encoding parsing of type application/x-www-form-urlencoded as specified in the HTML 4.0 Specification.

Implementation is thread-safe.

The data is parsed using parse(String, Object).

Sample usage:

 static void setParser(HttpTransport transport) {
 transport.addParser(new UrlEncodedParser());
 }
 
Since:
1.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    "application/x-www-form-urlencoded" content type.
    static final String
    "application/x-www-form-urlencoded" media type with UTF-8 encoding.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    parse(Reader reader, Object data)
    Parses the given URL-encoded content into the given data object of data key name/value pairs, including support for repeating data key names.
    static void
    parse(Reader reader, Object data, boolean decodeEnabled)
    Parses the given URL-encoded content into the given data object of data key name/value pairs, including support for repeating data key names.
    static void
    parse(String content, Object data)
    Parses the given URL-encoded content into the given data object of data key name/value pairs using parse(Reader, Object).
    static void
    parse(String content, Object data, boolean decodeEnabled)
    Parses the given URL-encoded content into the given data object of data key name/value pairs using parse(Reader, Object).
    <T> T
    parseAndClose(InputStream in, Charset charset, Class<T> dataClass)
    Parses the given input stream into a new instance of the the given data class of key/value pairs and closes the input stream.
    parseAndClose(InputStream in, Charset charset, Type dataType)
    Parses the given input stream into a new instance of the the given data type of key/value pairs and closes the input stream.
    <T> T
    parseAndClose(Reader reader, Class<T> dataClass)
    Parses the given reader into a new instance of the the given data class of key/value pairs and closes the reader.
    parseAndClose(Reader reader, Type dataType)
    Parses the given reader into a new instance of the the given data type of key/value pairs and closes the reader.
    private static Object
    parseValue(Type valueType, List<Type> context, String value)
     

    Methods inherited from class java.lang.Object

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

    • CONTENT_TYPE

      public static final String CONTENT_TYPE
      "application/x-www-form-urlencoded" content type.
      See Also:
    • MEDIA_TYPE

      public static final String MEDIA_TYPE
      "application/x-www-form-urlencoded" media type with UTF-8 encoding.
      Since:
      1.13
  • Constructor Details

    • UrlEncodedParser

      public UrlEncodedParser()
  • Method Details

    • parse

      public static void parse(String content, Object data)
      Parses the given URL-encoded content into the given data object of data key name/value pairs using parse(Reader, Object).
      Parameters:
      content - URL-encoded content or null to ignore content
      data - data key name/value pairs
    • parse

      public static void parse(String content, Object data, boolean decodeEnabled)
      Parses the given URL-encoded content into the given data object of data key name/value pairs using parse(Reader, Object).
      Parameters:
      content - URL-encoded content or null to ignore content
      data - data key name/value pairs
      decodeEnabled - flag that specifies whether decoding should be enabled.
    • parse

      public static void parse(Reader reader, Object data) throws IOException
      Parses the given URL-encoded content into the given data object of data key name/value pairs, including support for repeating data key names.

      Declared fields of a "primitive" type (as defined by Data.isPrimitive(Type) are parsed using Data.parsePrimitiveValue(Type, String) where the Class parameter is the declared field class. Declared fields of type Collection are used to support repeating data key names, so each member of the collection is an additional data key value. They are parsed the same as "primitive" fields, except that the generic type parameter of the collection is used as the Class parameter.

      If there is no declared field for an input parameter name, it will be ignored unless the input data parameter is a Map. If it is a map, the parameter value will be stored either as a string, or as a ArrayList<String> in the case of repeated parameters.

      Parameters:
      reader - URL-encoded reader
      data - data key name/value pairs
      Throws:
      IOException
      Since:
      1.14
    • parse

      public static void parse(Reader reader, Object data, boolean decodeEnabled) throws IOException
      Parses the given URL-encoded content into the given data object of data key name/value pairs, including support for repeating data key names.

      Declared fields of a "primitive" type (as defined by Data.isPrimitive(Type) are parsed using Data.parsePrimitiveValue(Type, String) where the Class parameter is the declared field class. Declared fields of type Collection are used to support repeating data key names, so each member of the collection is an additional data key value. They are parsed the same as "primitive" fields, except that the generic type parameter of the collection is used as the Class parameter.

      If there is no declared field for an input parameter name, it is ignored unless the input data parameter is a Map. If it is a map, the parameter value is stored either as a string, or as a ArrayList<String> in the case of repeated parameters.

      Parameters:
      reader - URL-encoded reader
      data - data key name/value pairs
      decodeEnabled - flag that specifies whether data should be decoded.
      Throws:
      IOException
      Since:
      1.14
    • parseValue

      private static Object parseValue(Type valueType, List<Type> context, String value)
    • parseAndClose

      public <T> T parseAndClose(InputStream in, Charset charset, Class<T> dataClass) throws IOException
      Description copied from interface: ObjectParser
      Parses the given input stream into a new instance of the the given data class of key/value pairs and closes the input stream.
      Specified by:
      parseAndClose in interface ObjectParser
      Parameters:
      in - input stream which contains the data to parse
      charset - charset which should be used to decode the input stream or null if unknown
      dataClass - class into which the data is parsed
      Throws:
      IOException
    • parseAndClose

      public Object parseAndClose(InputStream in, Charset charset, Type dataType) throws IOException
      Description copied from interface: ObjectParser
      Parses the given input stream into a new instance of the the given data type of key/value pairs and closes the input stream.
      Specified by:
      parseAndClose in interface ObjectParser
      Parameters:
      in - input stream which contains the data to parse
      charset - charset which should be used to decode the input stream or null if unknown
      dataType - type into which the data is parsed
      Throws:
      IOException
    • parseAndClose

      public <T> T parseAndClose(Reader reader, Class<T> dataClass) throws IOException
      Description copied from interface: ObjectParser
      Parses the given reader into a new instance of the the given data class of key/value pairs and closes the reader.
      Specified by:
      parseAndClose in interface ObjectParser
      Parameters:
      reader - reader which contains the text data to parse
      dataClass - class into which the data is parsed
      Throws:
      IOException
    • parseAndClose

      public Object parseAndClose(Reader reader, Type dataType) throws IOException
      Description copied from interface: ObjectParser
      Parses the given reader into a new instance of the the given data type of key/value pairs and closes the reader.
      Specified by:
      parseAndClose in interface ObjectParser
      Parameters:
      reader - reader which contains the text data to parse
      dataType - type into which the data is parsed
      Throws:
      IOException