twisted.protocols.http.Request

Package twisted :: Package protocols :: Module http :: Class Request |
[frames | no frames]

## Class Request

Known Subclasses:
  `ProxyRequest`, `Request`, `ReverseProxyRequest`

A HTTP request.

Subclasses should override the process() method to determine how the request will be processed.

Method Summary
| ``__init__`(self, channel, queued)`
| `__repr__(self)`
| `_authorize(self)`
| ``_cleanup`(self)` Called when have finished responding and are no longer queued.
| `_sendError(self, code, resp)`
| ``addCookie`(self, k, v, expires, domain, path, max_age, comment, secure)` Set an outgoing HTTP cookie.
| ``connectionLost`(self, reason)` connection was lost
| ``finish`(self)` We are finished writing data.
| ``getAllHeaders`(self)` Return dictionary of all headers the request received.
| `getClient(self)`
| `getClientIP(self)`
| ``getCookie`(self, key)` Get a cookie that was sent from the network.
| ``getHeader`(self, key)` Get a header that was sent from the network.
| ``getHost`(self)` Get my originally requesting transport's host.
| `getPassword(self)`
| ``getRequestHostname`(self)` Get the hostname that the user passed in to the request.
| `getUser(self)`
| ``gotLength`(self, length)` Called when HTTP channel got length of content in this request.
| ``handleContentChunk`(self, data)` Write a chunk of data.
| `isSecure(self)`
| ``noLongerQueued`(self)` Notify the object that it is no longer queued.
| ``parseCookies`(self)` Parse cookie headers.
| ``process`(self)` Override in subclasses.
| ``redirect`(self, url)` Utility function that does a redirect.
| ``registerProducer`(self, producer, streaming)` Register a producer.
| ``requestReceived`(self, command, path, version)` Called by channel when all data has been received.
| ``setETag`(self, etag)` Set an entity tag for the outgoing response.
| ``setHeader`(self, k, v)` Set an outgoing HTTP header.
| ``setHost`(self, host, port, ssl)` Change the host and port the request thinks it's using.
| ``setLastModified`(self, when)` Set the Last-Modified time for the response to this request.
| ``setResponseCode`(self, code, message)` Set the HTTP response code.
| ``unregisterProducer`(self)` Unregister the producer.
| ``write`(self, data)` Write some data as a result of an HTTP request.

Instance Variable Summary
A mapping of strings (the argument names) to lists of values. i.e., ?foo=bar&foo=baz&quux=spam results in {'foo': ['bar', 'baz'], 'quux': ['spam']}. | `args`: All of the arguments, including URL and POST arguments.
`str` | `method`: The HTTP method that was used.
| `path`: The path only (arguments not included).
| `received_headers`: All received headers
`str` | `uri`: The full URI that was requested (includes arguments).

Class Variable Summary
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.ICo...`
`int` | `_forceSSL` = 0
`int` | `chunked` = 0
`str` | `clientproto` = `'(no clientproto yet)'`
`int` | `code` = 200
`str` | `code_message` = `'OK'`
`NoneType` | `etag` = None
`int` | `finished` = 0
`NoneType` | `lastModified` = None
`NoneType` | `producer` = None
`int` | `sentLength` = 0
`int` | `startedWriting` = 0

Method Details

### __init__(self, channel, queued) (Constructor) Parameters: `channel` - the channel we're connected to. `queued` - are we in the request queue, or can we start writing to the transport?

### _cleanup(self) Called when have finished responding and are no longer queued.

### addCookie(self, k, v, expires=None, domain=None, path=None, max_age=None, comment=None, secure=None) Set an outgoing HTTP cookie. In general, you should consider using sessions instead of cookies, see twisted.web.server.Request.getSession and the twisted.web.server.Session class for details.

### connectionLost(self, reason) connection was lost

### finish(self) We are finished writing data.

### getAllHeaders(self) Return dictionary of all headers the request received.

### getCookie(self, key) Get a cookie that was sent from the network.

### getHeader(self, key) Get a header that was sent from the network.

### getHost(self) Get my originally requesting transport's host. Don't rely on the 'transport' attribute, since Request objects may be copied remotely. For information on this method's return value, see twisted.internet.tcp.Port.

### getRequestHostname(self) Get the hostname that the user passed in to the request. This will either use the Host: header (if it is available) or the host we are listening on if the header is unavailable.

### gotLength(self, length) Called when HTTP channel got length of content in this request. This method is not intended for users.

### handleContentChunk(self, data) Write a chunk of data. This method is not intended for users.

### noLongerQueued(self) Notify the object that it is no longer queued. We start writing whatever data we have to the transport, etc. This method is not intended for users.

### parseCookies(self) Parse cookie headers. This method is not intended for users.

### process(self) Override in subclasses. This method is not intended for users.

### redirect(self, url) Utility function that does a redirect. The request should have finish() called after this.

### registerProducer(self, producer, streaming) Register a producer.

### requestReceived(self, command, path, version) Called by channel when all data has been received. This method is not intended for users.

### setETag(self, etag) Set an entity tag for the outgoing response. That's "entity tag" as in the HTTP/1.1 ETag header, "used for comparing two or more entities from the same requested resource." If I am a conditional request, I may modify my response code to `NOT_MODIFIED` or `PRECONDITION_FAILED`, if appropriate for the tag given. Parameters: `etag` - The entity tag for the resource being returned. (type=string) Returns: If I am a If-None-Match conditional request and the tag matches one in the request, I return `http.CACHED` to indicate that you should write no body. Otherwise, I return a false value.

### setHeader(self, k, v) Set an outgoing HTTP header.

### setHost(self, host, port, ssl=0) Change the host and port the request thinks it's using. This method is useful for working with reverse HTTP proxies (e.g. both Squid and Apache's mod_proxy can do this), when the address the HTTP client is using is different than the one we're listening on. For example, Apache may be listening on https://www.example.com, and then forwarding requests to http://localhost:8080, but we don't want HTML produced by Twisted to say 'http://localhost:8080', they should say 'https://www.example.com', so we do:
      request.setHost('www.example.com', 443, ssl=1)
This method is experimental.

### setLastModified(self, when) Set the Last-Modified time for the response to this request. If I am called more than once, I ignore attempts to set Last-Modified earlier, only replacing the Last-Modified time if it is to a later value. If I am a conditional request, I may modify my response code to `NOT_MODIFIED` if appropriate for the time given. Parameters: `when` - The last time the resource being returned was modified, in seconds since the epoch. (type=number) Returns: If I am a If-Modified-Since conditional request and the time given is not newer than the condition, I return `http.CACHED` to indicate that you should write no body. Otherwise, I return a false value.

### setResponseCode(self, code, message=None) Set the HTTP response code.

### unregisterProducer(self) Unregister the producer.

### write(self, data) Write some data as a result of an HTTP request. The first time this is called, it writes out response data.

Instance Variable Details

### args All of the arguments, including URL and POST arguments. Type: A mapping of strings (the argument names) to lists of values. i.e., ?foo=bar&foo=baz&quux=spam results in {'foo': ['bar', 'baz'], 'quux': ['spam']}.

    ### method The HTTP method that was used. Type: `str` Value:
        '(no method yet)'

### path The path only (arguments not included).

### received_headers All received headers

    ### uri The full URI that was requested (includes arguments). Type: `str` Value:
        '(no uri yet)'

Class Variable Details

    ### __implements__ Type: `tuple` Value:
        (<class twisted.internet.interfaces.IConsumer at 0x824feb4>,)

    ### _forceSSL Type: `int` Value:
        0

    ### chunked Type: `int` Value:
        0

    ### clientproto Type: `str` Value:
        '(no clientproto yet)'

    ### code Type: `int` Value:
        200

    ### code_message Type: `str` Value:
        'OK'

    ### etag Type: `NoneType` Value:
        None

    ### finished Type: `int` Value:
        0

    ### lastModified Type: `NoneType` Value:
        None

    ### producer Type: `NoneType` Value:
        None

    ### sentLength Type: `int` Value:
        0

    ### startedWriting Type: `int` Value:
        0

Generated by Epydoc 2.0 on Sat May 15 20:08:11 2004 | http://epydoc.sf.net