twisted.protocols.http.Request.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.protocols.http.Request</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.protocols.html">Package protocols</a> ::
<a href="twisted.protocols.http.html">Module http</a> ::
Class Request
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.protocols.http.Request.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class Request</h2>
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.web.proxy.ProxyRequest.html"><code>ProxyRequest</code></a>,
<a href="twisted.web.server.Request.html"><code>Request</code></a>,
<a href="twisted.web.proxy.ReverseProxyRequest.html"><code>ReverseProxyRequest</code></a></dd></dl>
<hr/>
<p>A HTTP request.</p>
Subclasses should override the process() method to determine how the
request will be processed.
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>channel</span>,
<span class=summary-sig-arg>queued</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_authorize"></a><span class="summary-sig"><span class="summary-sig-name">_authorize</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#_cleanup" class="summary-sig-name"><code>_cleanup</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when have finished responding and are no longer queued.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_sendError"></a><span class="summary-sig"><span class="summary-sig-name">_sendError</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>code</span>,
<span class=summary-sig-arg>resp</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#addCookie" class="summary-sig-name"><code>addCookie</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>k</span>,
<span class=summary-sig-arg>v</span>,
<span class=summary-sig-arg>expires</span>,
<span class=summary-sig-arg>domain</span>,
<span class=summary-sig-arg>path</span>,
<span class=summary-sig-arg>max_age</span>,
<span class=summary-sig-arg>comment</span>,
<span class=summary-sig-arg>secure</span>)</span></code>
<br />
Set an outgoing HTTP cookie.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#connectionLost" class="summary-sig-name"><code>connectionLost</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>reason</span>)</span></code>
<br />
connection was lost</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#finish" class="summary-sig-name"><code>finish</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
We are finished writing data.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#getAllHeaders" class="summary-sig-name"><code>getAllHeaders</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Return dictionary of all headers the request received.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getClient"></a><span class="summary-sig"><span class="summary-sig-name">getClient</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getClientIP"></a><span class="summary-sig"><span class="summary-sig-name">getClientIP</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#getCookie" class="summary-sig-name"><code>getCookie</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>key</span>)</span></code>
<br />
Get a cookie that was sent from the network.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#getHeader" class="summary-sig-name"><code>getHeader</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>key</span>)</span></code>
<br />
Get a header that was sent from the network.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#getHost" class="summary-sig-name"><code>getHost</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Get my originally requesting transport's host.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getPassword"></a><span class="summary-sig"><span class="summary-sig-name">getPassword</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#getRequestHostname" class="summary-sig-name"><code>getRequestHostname</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Get the hostname that the user passed in to the request.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getUser"></a><span class="summary-sig"><span class="summary-sig-name">getUser</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#gotLength" class="summary-sig-name"><code>gotLength</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>length</span>)</span></code>
<br />
Called when HTTP channel got length of content in this request.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#handleContentChunk" class="summary-sig-name"><code>handleContentChunk</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>data</span>)</span></code>
<br />
Write a chunk of data.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="isSecure"></a><span class="summary-sig"><span class="summary-sig-name">isSecure</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#noLongerQueued" class="summary-sig-name"><code>noLongerQueued</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Notify the object that it is no longer queued.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#parseCookies" class="summary-sig-name"><code>parseCookies</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Parse cookie headers.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#process" class="summary-sig-name"><code>process</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Override in subclasses.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#redirect" class="summary-sig-name"><code>redirect</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>url</span>)</span></code>
<br />
Utility function that does a redirect.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#registerProducer" class="summary-sig-name"><code>registerProducer</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>producer</span>,
<span class=summary-sig-arg>streaming</span>)</span></code>
<br />
Register a producer.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#requestReceived" class="summary-sig-name"><code>requestReceived</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>command</span>,
<span class=summary-sig-arg>path</span>,
<span class=summary-sig-arg>version</span>)</span></code>
<br />
Called by channel when all data has been received.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#setETag" class="summary-sig-name"><code>setETag</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>etag</span>)</span></code>
<br />
Set an <a name="index-entity_tag"></a><i class="indexterm">entity
tag</i> for the outgoing response.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#setHeader" class="summary-sig-name"><code>setHeader</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>k</span>,
<span class=summary-sig-arg>v</span>)</span></code>
<br />
Set an outgoing HTTP header.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#setHost" class="summary-sig-name"><code>setHost</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>host</span>,
<span class=summary-sig-arg>port</span>,
<span class=summary-sig-arg>ssl</span>)</span></code>
<br />
Change the host and port the request thinks it's using.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#setLastModified" class="summary-sig-name"><code>setLastModified</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>when</span>)</span></code>
<br />
Set the <a name="index-Last_Modified"></a><i
class="indexterm">Last-Modified</i> time for the response to this
request.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#setResponseCode" class="summary-sig-name"><code>setResponseCode</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>code</span>,
<span class=summary-sig-arg>message</span>)</span></code>
<br />
Set the HTTP response code.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#unregisterProducer" class="summary-sig-name"><code>unregisterProducer</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Unregister the producer.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.http.Request.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>data</span>)</span></code>
<br />
Write some data as a result of an HTTP request.</td></tr>
</table><br />
<!-- =========== START OF INSTANCE VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Instance Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1">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']}.</font></td>
<td><b><a href="twisted.protocols.http.Request.html#args"><code>args</code></a></b>: All of the arguments, including URL and POST arguments.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#method"><code>method</code></a></b>: The HTTP method that was used.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><b><a href="twisted.protocols.http.Request.html#path"><code>path</code></a></b>: The path only (arguments not included).</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><b><a href="twisted.protocols.http.Request.html#received_headers"><code>received_headers</code></a></b>: All received headers</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#uri"><code>uri</code></a></b>: The full URI that was requested (includes arguments).</td></tr>
</table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.internet.interfaces.IConsumer at 0x824feb4>,)"><code>(<class twisted.internet.interfaces.ICo<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#_forceSSL"><code>_forceSSL</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#chunked"><code>chunked</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#clientproto"><code>clientproto</code></a></b> = <span title="'(no clientproto yet)'"><code><span class="variable-quote">'</span>(no clientproto yet)<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#code"><code>code</code></a></b> = <span title="200">200 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#code_message"><code>code_message</code></a></b> = <span title="'OK'"><code><span class="variable-quote">'</span>OK<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#etag"><code>etag</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#finished"><code>finished</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#lastModified"><code>lastModified</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#producer"><code>producer</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#sentLength"><code>sentLength</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.http.Request.html#startedWriting"><code>startedWriting</code></a></b> = <span title="0">0 </span></td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="__init__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>channel</span>,
<span class=sig-arg>queued</span>)</span>
<br /><i>(Constructor)</i>
</h3>
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>channel</b></code> -
the channel we're connected to.
<dd><code><b>queued</b></code> -
are we in the request queue, or can we start writing to the
transport?
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="_cleanup"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">_cleanup</span>(<span class=sig-arg>self</span>)</span>
</h3>
Called when have finished responding and are no longer queued.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="addCookie"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">addCookie</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>k</span>,
<span class=sig-arg>v</span>,
<span class=sig-arg>expires</span>=<span class=sig-default>None</span>,
<span class=sig-arg>domain</span>=<span class=sig-default>None</span>,
<span class=sig-arg>path</span>=<span class=sig-default>None</span>,
<span class=sig-arg>max_age</span>=<span class=sig-default>None</span>,
<span class=sig-arg>comment</span>=<span class=sig-default>None</span>,
<span class=sig-arg>secure</span>=<span class=sig-default>None</span>)</span>
</h3>
<p>Set an outgoing HTTP cookie.</p>
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.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="connectionLost"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">connectionLost</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>reason</span>)</span>
</h3>
connection was lost
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="finish"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">finish</span>(<span class=sig-arg>self</span>)</span>
</h3>
We are finished writing data.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getAllHeaders"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getAllHeaders</span>(<span class=sig-arg>self</span>)</span>
</h3>
Return dictionary of all headers the request received.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getCookie"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getCookie</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>key</span>)</span>
</h3>
Get a cookie that was sent from the network.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getHeader"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getHeader</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>key</span>)</span>
</h3>
Get a header that was sent from the network.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getHost"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getHost</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Get my originally requesting transport's host.</p>
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.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getRequestHostname"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getRequestHostname</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Get the hostname that the user passed in to the request.</p>
This will either use the Host: header (if it is available) or the
host we are listening on if the header is unavailable.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="gotLength"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">gotLength</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>length</span>)</span>
</h3>
<p>Called when HTTP channel got length of content in this request.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="handleContentChunk"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">handleContentChunk</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>data</span>)</span>
</h3>
<p>Write a chunk of data.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="noLongerQueued"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">noLongerQueued</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Notify the object that it is no longer queued.</p>
<p>We start writing whatever data we have to the transport, etc.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="parseCookies"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">parseCookies</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Parse cookie headers.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="process"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">process</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Override in subclasses.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="redirect"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">redirect</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>url</span>)</span>
</h3>
<p>Utility function that does a redirect.</p>
The request should have finish() called after this.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="registerProducer"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">registerProducer</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>producer</span>,
<span class=sig-arg>streaming</span>)</span>
</h3>
Register a producer.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="requestReceived"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">requestReceived</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>command</span>,
<span class=sig-arg>path</span>,
<span class=sig-arg>version</span>)</span>
</h3>
<p>Called by channel when all data has been received.</p>
This method is not intended for users.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="setETag"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">setETag</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>etag</span>)</span>
</h3>
<p>Set an <a name="index-entity_tag"></a><i class="indexterm">entity
tag</i> for the outgoing response.</p>
<p>That's "entity tag" as in the HTTP/1.1 <a
name="index-ETag"></a><i class="indexterm">ETag</i> header, "used
for comparing two or more entities from the same requested
resource."</p>
If I am a conditional request, I may modify my response code to <a
href="twisted.protocols.http.html#NOT_MODIFIED"
class="link"><code>NOT_MODIFIED</code></a> or <a
href="twisted.protocols.http.html#PRECONDITION_FAILED"
class="link"><code>PRECONDITION_FAILED</code></a>, if appropriate for
the tag given.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>etag</b></code> -
The entity tag for the resource being returned.
<br /><i>
(type=string)</i>
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
If I am a <a name="index-If_None_Match"></a><i
class="indexterm">If-None-Match</i> conditional request and the
tag matches one in the request, I return <a
href="twisted.protocols.http.html#CACHED"
class="link"><code>http.CACHED</code></a> to indicate that you
should write no body. Otherwise, I return a false value.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="setHeader"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">setHeader</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>k</span>,
<span class=sig-arg>v</span>)</span>
</h3>
Set an outgoing HTTP header.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="setHost"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">setHost</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>host</span>,
<span class=sig-arg>port</span>,
<span class=sig-arg>ssl</span>=<span class=sig-default>0</span>)</span>
</h3>
<p>Change the host and port the request thinks it's using.</p>
<p>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.</p>
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:
<pre class="literalblock">
request.setHost('www.example.com', 443, ssl=1)
</pre>
This method is experimental.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="setLastModified"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">setLastModified</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>when</span>)</span>
</h3>
<p>Set the <a name="index-Last_Modified"></a><i
class="indexterm">Last-Modified</i> time for the response to this
request.</p>
<p>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.</p>
If I am a conditional request, I may modify my response code to <a
href="twisted.protocols.http.html#NOT_MODIFIED"
class="link"><code>NOT_MODIFIED</code></a> if appropriate for the time
given.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>when</b></code> -
The last time the resource being returned was modified, in
seconds since the epoch.
<br /><i>
(type=number)</i>
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
If I am a <a name="index-If_Modified_Since"></a><i
class="indexterm">If-Modified-Since</i> conditional request and
the time given is not newer than the condition, I return <a
href="twisted.protocols.http.html#CACHED"
class="link"><code>http.CACHED</code></a> to indicate that you
should write no body. Otherwise, I return a false value.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="setResponseCode"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">setResponseCode</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>code</span>,
<span class=sig-arg>message</span>=<span class=sig-default>None</span>)</span>
</h3>
Set the HTTP response code.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="unregisterProducer"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">unregisterProducer</span>(<span class=sig-arg>self</span>)</span>
</h3>
Unregister the producer.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="write"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">write</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>data</span>)</span>
</h3>
Write some data as a result of an HTTP request. The first time this
is called, it writes out response data.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF INSTANCE VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Instance Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="args"></a>
<h3>args</h3>
All of the arguments, including URL and POST arguments.
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
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']}.
</dd>
</dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="method"></a>
<h3>method</h3>
The HTTP method that was used.
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'(no method yet)'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>(no method yet)<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="path"></a>
<h3>path</h3>
The path only (arguments not included).
</td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="received_headers"></a>
<h3>received_headers</h3>
All received headers
</td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="uri"></a>
<h3>uri</h3>
The full URI that was requested (includes arguments).
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'(no uri yet)'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>(no uri yet)<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="__implements__"></a>
<h3>__implements__</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>tuple</code>
</dd>
<span title="(<class twisted.internet.interfaces.IConsumer at 0x824feb4>,)"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
(<class twisted.internet.interfaces.IConsumer at 0x824feb4>,) </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="_forceSSL"></a>
<h3>_forceSSL</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="chunked"></a>
<h3>chunked</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="clientproto"></a>
<h3>clientproto</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'(no clientproto yet)'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>(no clientproto yet)<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="code"></a>
<h3>code</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="200"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
200 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="code_message"></a>
<h3>code_message</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'OK'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>OK<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="etag"></a>
<h3>etag</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="finished"></a>
<h3>finished</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="lastModified"></a>
<h3>lastModified</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="producer"></a>
<h3>producer</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="sentLength"></a>
<h3>sentLength</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="startedWriting"></a>
<h3>startedWriting</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:11 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>