public class UrlEncodedParser 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()); }
Implements
ObjectParserStatic Fields
CONTENT_TYPE
public static final String CONTENT_TYPE
"application/x-www-form-urlencoded"
content type.
Type | Description |
String |
MEDIA_TYPE
public static final String MEDIA_TYPE
"application/x-www-form-urlencoded"
media type with UTF-8 encoding.
Type | Description |
String |
Static Methods
parse(Reader reader, Object data)
public 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.
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.
Name | Description |
reader | Reader URL-encoded reader |
data | Object data key name/value pairs |
Type | Description |
IOException |
parse(Reader reader, Object data, boolean decodeEnabled)
public 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.
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.
Name | Description |
reader | Reader URL-encoded reader |
data | Object data key name/value pairs |
decodeEnabled | boolean flag that specifies whether data should be decoded. |
Type | Description |
IOException |
parse(String content, Object data)
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).
Name | Description |
content | String URL-encoded content or |
data | Object data key name/value pairs |
parse(String content, Object data, boolean decodeEnabled)
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).
Name | Description |
content | String URL-encoded content or |
data | Object data key name/value pairs |
decodeEnabled | boolean flag that specifies whether decoding should be enabled. |
Constructors
UrlEncodedParser()
public UrlEncodedParser()
Methods
<T>parseAndClose(InputStream in, Charset charset, Class<T> dataClass)
public 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.
Name | Description |
in | InputStream |
charset | Charset |
dataClass | Class<T> |
Type | Description |
T |
Type | Description |
IOException |
<T>parseAndClose(Reader reader, Class<T> dataClass)
public 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.
Name | Description |
reader | Reader |
dataClass | Class<T> |
Type | Description |
T |
Type | Description |
IOException |
parseAndClose(InputStream in, Charset charset, Type dataType)
public Object 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.
Name | Description |
in | InputStream |
charset | Charset |
dataType | Type |
Type | Description |
Object |
Type | Description |
IOException |
parseAndClose(Reader reader, Type dataType)
public Object 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.
Name | Description |
reader | Reader |
dataType | Type |
Type | Description |
Object |
Type | Description |
IOException |