Package apiclient :: Module http :: Class HttpRequest |
[hide private]
[frames] | no frames]

# Class HttpRequest

source code

    Encapsulates a single HTTP request.

Instance Methods | [hide private]
__init__(self, http, postproc, uri, method='GET', body=None, headers=None, methodId=None, resumable=None) Constructor for an HttpRequest. | source code
execute(self, http=None, num_retries=0) Execute the request. | source code
add_response_callback(self, cb) add_response_headers_callback | source code
next_chunk(self, http=None, num_retries=0) Execute the next step of a resumable upload. | source code
_process_response(self, resp, content) Process the response from a single chunk upload. | source code
to_json(self) Returns a JSON representation of the HttpRequest. | source code
Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Static Methods | [hide private]
from_json(s, http, postproc) Returns an HttpRequest populated with info from a JSON object. | source code

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, http, postproc, uri, method='GET', body=None, headers=None, methodId=None, resumable=None) (Constructor) | source code
    Constructor for an HttpRequest.

    Args:
      http: httplib2.Http, the transport object to use to make a request
      postproc: callable, called on the HTTP response and content to transform
                it into a data object before returning, or raising an exception
                on an error.
      uri: string, the absolute URI to send the request to
      method: string, the HTTP method to use
      body: string, the request body of the HTTP request,
      headers: dict, the HTTP request headers
      methodId: string, a unique identifier for the API method being called.
      resumable: MediaUpload, None if this is not a resumbale request.
Decorators: `@util.positional(4)` Overrides: object.__init__

### execute(self, http=None, num_retries=0) | source code
    Execute the request.

    Args:
      http: httplib2.Http, an http object to be used in place of the
            one the HttpRequest request object was constructed with.
      num_retries: Integer, number of times to retry 500's with randomized
            exponential backoff. If all retries fail, the raised HttpError
            represents the last request. If zero (default), we attempt the
            request only once.

    Returns:
      A deserialized object model of the response body as determined
      by the postproc.

    Raises:
      apiclient.errors.HttpError if the response was not a 2xx.
      httplib2.HttpLib2Error if a transport error has occured.
Decorators: `@util.positional(1)`

### add_response_callback(self, cb) | source code
    add_response_headers_callback

    Args:
      cb: Callback to be called on receiving the response headers, of signature:

      def cb(resp):
        # Where resp is an instance of httplib2.Response
Decorators: `@util.positional(2)`

### next_chunk(self, http=None, num_retries=0) | source code
    Execute the next step of a resumable upload.

    Can only be used if the method being executed supports media uploads and
    the MediaUpload object passed in was flagged as using resumable upload.

    Example:

      media = MediaFileUpload('cow.png', mimetype='image/png',
                              chunksize=1000, resumable=True)
      request = farm.animals().insert(
          id='cow',
          name='cow.png',
          media_body=media)

      response = None
      while response is None:
        status, response = request.next_chunk()
        if status:
          print "Upload %d%% complete." % int(status.progress() * 100)

    Args:
      http: httplib2.Http, an http object to be used in place of the
            one the HttpRequest request object was constructed with.
      num_retries: Integer, number of times to retry 500's with randomized
            exponential backoff. If all retries fail, the raised HttpError
            represents the last request. If zero (default), we attempt the
            request only once.

    Returns:
      (status, body): (ResumableMediaStatus, object)
         The body will be None until the resumable media is fully uploaded.

    Raises:
      apiclient.errors.HttpError if the response was not a 2xx.
      httplib2.HttpLib2Error if a transport error has occured.
Decorators: `@util.positional(1)`

### _process_response(self, resp, content) | source code
    Process the response from a single chunk upload.

    Args:
      resp: httplib2.Response, the response object.
      content: string, the content of the response.

    Returns:
      (status, body): (ResumableMediaStatus, object)
         The body will be None until the resumable media is fully uploaded.

    Raises:
      apiclient.errors.HttpError if the response was not a 2xx or a 308.