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.