com.google.api.client.http
Class UrlEncodedParser

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

public final class UrlEncodedParser
extends Object
implements HttpParser

Implements support for HTTP form content encoding parsing of type application/x-www-form-urlencoded as specified in the HTML 4.0 Specification.

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

Field Summary
static String CONTENT_TYPE
          "application/x-www-form-urlencoded" content type.
 String contentType
          Content type.
 boolean disableContentLogging
          Whether to disable response content logging (unless Level.ALL is loggable which forces all logging).
 
Constructor Summary
UrlEncodedParser()
           
 
Method Summary
 String getContentType()
          Returns the content type.
<T> T
parse(HttpResponse response, Class<T> dataClass)
          Parses the given HTTP response into a new instance of the the given data class of key/value pairs.
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.
 
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

disableContentLogging

public boolean disableContentLogging
Whether to disable response content logging (unless Level.ALL is loggable which forces all logging).

Useful for example if content has sensitive data such as an authentication token. Defaults to false.


contentType

public String contentType
Content type. Default value is CONTENT_TYPE.

Constructor Detail

UrlEncodedParser

public UrlEncodedParser()
Method Detail

getContentType

public String getContentType()
Description copied from interface: HttpParser
Returns the content type.

Specified by:
getContentType in interface HttpParser

parse

public <T> T parse(HttpResponse response,
                   Class<T> dataClass)
        throws IOException
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


Copyright © 2010-2011 Google. All Rights Reserved.