Package Halberd :: Module clientlib :: Class HTTPClient

[show private | hide private]
[frames | no frames]

## Class HTTPClient

Known Subclasses:
  `HTTPSClient`

Special-purpose HTTP client.

Method Summary
| ``__init__`(self)` Initializes the object.
| `__del__(self)`
`tuple` | ``getHeaders`(self, address, urlstr)` Talk to the target webserver and fetch MIME headers.
| ``_connect`(self, addr)` Connect to the target address.
`str` | ``_fillTemplate`(self, hostname, port, url, params, query, fragment)` Fills the request template with relevant information.
`tuple` | ``_getHostAndPort`(self, netloc)` Determine the hostname and port to connect to from an URL
`tuple` | ``_getReply`(self)` Read a reply from the server.
| ``_putRequest`(self, address, urlstr)` Sends an HTTP request to the target webserver.
| ``_sendAll`(self, data)` Sends a string to the socket.

Instance Variable Summary
`int` | `bufsize`: Buffer size for network I/O.
`str` | `template`: Template of the HTTP request to be sent to the target.
`float` | `timeout`: Timeout for socket operations (expressed in seconds).
`callable` | `_recv`: Reference to a callable responsible from reading data from the network.

Method Details

### __init__(self)
(Constructor)

Initializes the object.

### getHeaders(self, address, urlstr)

Talk to the target webserver and fetch MIME headers.

  Parameters:
    `address` - The target's network address.
    (type=`tuple`)
    `urlstr` - URL to use.
    (type=`str`)
  Returns:
    The time when the client started reading the server's response and the MIME headers that were sent.
    (type=`tuple`)

### _connect(self, addr)

Connect to the target address.

  Parameters:
    `addr` - The target's address.
    (type=`tuple`)
  Raises:
    `ConnectionRefused` - If it can't reach the target webserver.

### _fillTemplate(self, hostname, port, url, params='', query='', fragment='')

Fills the request template with relevant information.

  Parameters:
    `hostname` - Target host to reach.
    (type=`str`)
    `port` - Remote port.
    (type=`int`)
    `url` - URL to use as source.
    (type=`str`)
  Returns:
    A request ready to be sent
    (type=`str`)

### _getHostAndPort(self, netloc)

Determine the hostname and port to connect to from an URL

  Parameters:
    `netloc` - Relevant part of the parsed URL.
    (type=`str`)
  Returns:
    Hostname (`str`) and port (`int`)
    (type=`tuple`)

### _getReply(self)

Read a reply from the server.

  Returns:
    Time when the data started arriving plus the received data.
    (type=`tuple`)
  Raises:
    `UnknownReply` - If the remote server doesn't return a valid HTTP reply.
    `TimedOut` - In case reading from the network takes too much time.

### _putRequest(self, address, urlstr)

Sends an HTTP request to the target webserver.

This method connects to the target server, sends the HTTP request and records a timestamp.

  Parameters:
    `address` - Target address.
    (type=`str`)
    `urlstr` - A valid Unified Resource Locator.
    (type=`str`)
  Raises:
    `InvalidURL` - In case the URL scheme is not HTTP or HTTPS
    `ConnectionRefused` - If it can't reach the target webserver.
    `TimedOut` - If we cannot send the data within the specified time.

### _sendAll(self, data)

Sends a string to the socket.

Instance Variable Details

### bufsize

Buffer size for network I/O.

  Type:
    `int`
  Value:

        1024

### template

Template of the HTTP request to be sent to the target.

  Type:
    `str`
  Value:

        '''GET %(request)s HTTP/1.1\r
        Host: %(hostname)s%(port)s\r
        Pragma: no-cache\r
        Cache-control: no-cache\r
        User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.7) Gecko/20\
        050414 Firefox/1.0.3\r
        Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, applicati\
        on/x-shockwave-flash, */*\r
        ...

### timeout

Timeout for socket operations (expressed in seconds). WARNING: changing this value is strongly discouraged.

  Type:
    `float`
  Value:

        2

### _recv

Reference to a callable responsible from reading data from the network.

  Type:
    `callable`

Generated by Epydoc 2.1 on Wed Jul 18 22:25:57 2007 | http://epydoc.sf.net