com.google.api.client.http
Class UrlEncodedParser

java.lang.Object
  extended by com.google.api.client.http.UrlEncodedParser
All Implemented Interfaces:
HttpParser, ObjectParser

public class UrlEncodedParser
extends Object
implements HttpParser, 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
Author:
Yaniv Inbar

Nested Class Summary
static class UrlEncodedParser.Builder
          Deprecated. (scheduled to be removed in 1.11) Content-Type is no longer stored in the parser.
 
Field Summary
static String CONTENT_TYPE
          "application/x-www-form-urlencoded" content type.
 
Constructor Summary
  UrlEncodedParser()
          Constructor that uses CONTENT_TYPE as the content type.
protected UrlEncodedParser(String contentType)
          Deprecated. (scheduled to be removed in 1.11) HttpParser has been replaced by ObjectParser
 
Method Summary
static UrlEncodedParser.Builder builder()
          Returns an instance of a new builder.
 String getContentType()
          Deprecated. 
<T> T
parse(HttpResponse response, Class<T> dataClass)
          Deprecated. 
static void parse(String content, 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.
<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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTENT_TYPE

public static final String CONTENT_TYPE
"application/x-www-form-urlencoded" content type.

See Also:
Constant Field Values
Constructor Detail

UrlEncodedParser

public UrlEncodedParser()
Constructor that uses CONTENT_TYPE as the content type.

To override the defaults, use builder().


UrlEncodedParser

@Deprecated
protected UrlEncodedParser(String contentType)
Deprecated. (scheduled to be removed in 1.11) HttpParser has been replaced by ObjectParser

Parameters:
contentType - content type
Since:
1.7
Method Detail

getContentType

@Deprecated
public final String getContentType()
Deprecated. 

Description copied from interface: HttpParser
Returns the content type.

Specified by:
getContentType in interface HttpParser

parse

@Deprecated
public <T> T parse(HttpResponse response,
                              Class<T> dataClass)
        throws IOException
Deprecated. 

Description copied from interface: HttpParser
Parses the given HTTP response into a new instance of the the given data class of key/value pairs.

How the parsing is performed is not restricted by this interface, and is instead defined by the concrete implementation. Implementations should check HttpResponse.isSuccessStatusCode() to know whether they are parsing a success or error response.

Specified by:
parse in interface HttpParser
Throws:
IOException

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, 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:
content - URL-encoded content or null to ignore content
data - data key name/value pairs

builder

public static UrlEncodedParser.Builder builder()
Returns an instance of a new builder.

Since:
1.5

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


Copyright © 2011-2012 Google. All Rights Reserved.