Package twisted :: Package protocols :: Module http :: Class Request

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

## Class Request

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

A HTTP request.

Method Summary
| ``__init__`(self, channel, queued)`
| `__repr__(self)`
| ``addCookie`(self, k, v, expires, domain, path, max_age, comment, secure)` Set an outgoing HTTP cookie.
| ``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 tagfor 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-Modifiedtime 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.

Class Variable Summary
`int` | `chunked`
`string` | `clientproto`
`int` | `code`
`string` | `code_message`
`None` | `etag`
`int` | `finished`
`class` | `IConsumer`
`None` | `lastModified`
`string` | `method`
`None` | `producer`
`int` | `sentLength`
`int` | `startedWriting`
`string` | `uri`

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?

### 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.Resource.getSession and the twisted.web.server.Session class for details.

### 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<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<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.

Class Variable Details

### chunked

  Type:
    `int`
  Value:

        0

### clientproto

  Type:
    `string`
  Value:

        '(no clientproto yet)'

### code

  Type:
    `int`
  Value:

        200

### code_message

  Type:
    `string`
  Value:

        'OK'

### etag

  Type:
    `None`
  Value:

        None

### finished

  Type:
    `int`
  Value:

        0

### IConsumer

`IConsumer` = `twisted.internet.interfaces.IConsumer`

### lastModified

  Type:
    `None`
  Value:

        None

### method

  Type:
    `string`
  Value:

        '(no method yet)'

### producer

  Type:
    `None`
  Value:

        None

### sentLength

  Type:
    `int`
  Value:

        0

### startedWriting

  Type:
    `int`
  Value:

        0

### uri

  Type:
    `string`
  Value:

        '(no uri yet)'

Generated by Epydoc 1.1 on Sat Feb 15 21:18:00 2003 | http://epydoc.sf.net