[Twisted-Python] no 'headers' in server.Request instance problem

Jon Dyte jon at totient.demon.co.uk
Wed Jun 12 16:54:42 EDT 2002

with mozilla build
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020206,build 2002020615

sending a request to a quixote/twisted server (actually a modified
Andrew Kuchling Example), I get the following error

Installing SelectReactor, since unspecified.
__main__.QuixoteFactory starting on 8098
Traceback (most recent call last):
  File "/sw/release/python/lib/python2.2/site-packages/twisted/internet/default.py", line 347, in doSelect
    why = getattr(selectable, method)()
  File "/sw/release/python/lib/python2.2/site-packages/twisted/internet/tcp.py", line 93, in doRead
    return self.protocol.dataReceived(data)
  File "/sw/release/python/lib/python2.2/site-packages/twisted/protocols/basic.py", line 161, in dataReceived
  File "/sw/release/python/lib/python2.2/site-packages/twisted/protocols/http.py", line 684, in lineReceived
  File "/sw/release/python/lib/python2.2/site-packages/twisted/protocols/http.py", line 733, in allHeadersReceived
    self.persistent = self.checkPersistence(req, self.__version)
  File "/sw/release/python/lib/python2.2/site-packages/twisted/protocols/http.py", line 759, in checkPersistence
    request.setHeader('connection', 'close')
  File "/sw/release/python/lib/python2.2/site-packages/twisted/protocols/http.py", line 561, in setHeader
    self.headers[string.lower(k)] = v
exceptions.AttributeError: QuixoteTWRequest instance has no attribute

The object QuixoteTWRequest is defined 

class QuixoteTWRequest (server.Request):

it looks to me like on some execution path thru http.py (dataReceived,
lineReceived) etc etc the headers slot of the server.Request object
doesnt get set. which would appear to mean requestReceived has not
been called as this sets self.headers to an empty dict at least.

The headers sent by the browser are :-
Host: localhost:9999

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020206

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1

Accept-Language: en-us

Accept-Encoding: gzip, deflate, compress;q=0.9

Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66

Connection: close

localhost.localdomain - - [12/Jun/2002 21:40:50] "GET / HTTP/1.1" 200 -	       

I'm pretty new to Twisted, so I might be missing something here, but
the script works with lynx and netscape 4.76.


More information about the Twisted-Python mailing list