On Wed, 21 Feb 2007 14:13:20 +0100, Jarek Zgoda <[EMAIL PROTECTED]> wrote:
Is it only me, or the field names in
twisted.web.http.Request.received_headers (also returned by
getAllHeaders()) are case-sensitive? The RFC states, that they should
be case-insensitive
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2), but if
I set "Accept" header in client code (such as using Python's own
httplib.HTTPConnection), there's no "accept" key in this dictionary,
as available in resource's render_XXX method.

Am I supposed to write my own HTTP compatibility layer for
twisted.web, or I just overlooked something obvious?

Can you provide an example which demonstrates the problem you're seeing?  This
example seems to demonstrate that all headers are lower-cased:

   from twisted.web.resource import Resource
   from twisted.web.server import Site
   from twisted.application.service import Application
   from twisted.application.internet import TCPServer

   class X(Resource):
       def getChild(self, *a):
           return self

       def render_GET(self, request):
           print request.getAllHeaders()
           return ''

   application = Application('HTTP Test')
   TCPServer(8080, Site(X())).setServiceParent(application)

Hitting the server with Firefox results in a dictionary with an 'accept'
key, with that spelling, regardless of the case of the input.

Jean-Paul

_______________________________________________
Twisted-web mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web

Reply via email to