public class UrlEncodedParser extends Object implements ObjectParser
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()); }
Modifier and Type | Field and Description |
---|---|
static String |
CONTENT_TYPE
"application/x-www-form-urlencoded" content type. |
static String |
MEDIA_TYPE
"application/x-www-form-urlencoded" media type with UTF-8 encoding. |
Constructor and Description |
---|
UrlEncodedParser() |
Modifier and Type | Method and 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.
|
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.
|
<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.
|
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.
|
public static final String CONTENT_TYPE
"application/x-www-form-urlencoded"
content type.public static final String MEDIA_TYPE
"application/x-www-form-urlencoded"
media type with UTF-8 encoding.public static void parse(String content, Object data)
parse(Reader, Object)
.content
- URL-encoded content or null
to ignore contentdata
- data key name/value pairspublic static void parse(String content, Object data, boolean decodeEnabled)
parse(Reader, Object)
.content
- URL-encoded content or null
to ignore contentdata
- data key name/value pairsdecodeEnabled
- flag that specifies whether decoding should be enabled.public static void parse(Reader reader, Object data) throws IOException
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.
reader
- URL-encoded readerdata
- data key name/value pairsIOException
public static void parse(Reader reader, Object data, boolean decodeEnabled) throws IOException
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.
reader
- URL-encoded readerdata
- data key name/value pairsdecodeEnabled
- flag that specifies whether data should be decoded.IOException
public <T> T parseAndClose(InputStream in, Charset charset, Class<T> dataClass) throws IOException
ObjectParser
parseAndClose
in interface ObjectParser
in
- input stream which contains the data to parsecharset
- charset which should be used to decode the input stream or null
if
unknowndataClass
- class into which the data is parsedIOException
public Object parseAndClose(InputStream in, Charset charset, Type dataType) throws IOException
ObjectParser
parseAndClose
in interface ObjectParser
in
- input stream which contains the data to parsecharset
- charset which should be used to decode the input stream or null
if
unknowndataType
- type into which the data is parsedIOException
public <T> T parseAndClose(Reader reader, Class<T> dataClass) throws IOException
ObjectParser
parseAndClose
in interface ObjectParser
reader
- reader which contains the text data to parsedataClass
- class into which the data is parsedIOException
public Object parseAndClose(Reader reader, Type dataType) throws IOException
ObjectParser
parseAndClose
in interface ObjectParser
reader
- reader which contains the text data to parsedataType
- type into which the data is parsedIOException
Copyright © 2011–2023 Google. All rights reserved.