Package googleapiclient :: 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 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:
  googleapiclient.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 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:
  googleapiclient.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:
  googleapiclient.errors.HttpError if the response was not a 2xx or a 308.