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