On 26 May, 10:52 pm, [email protected] wrote: >Hi, > >I'm having a problem putting binary data into a body of http response >using twisted web.I'm doing something very wrong, any help is >appreciated. The funny thing is that it runs on python2.7, but fails >on python2.5. Most probably it has something to do with unicode/str. > >Code snipplet: >------- >def render_GET(self, request): > # get contents of a binary file, e.g. zip archive > request.setHeader('Content-type', 'some-mime') > return content >-----
I'm not sure why you get different behavior on Python 2.5 vs Python 2.7. You can certainly put any data you want, including "binary" (that is, non-ASCII) bytes. > >This results in a error: > > exceptions.UnicodeDecodeError: 'ascii' codec can't decode byte >0x92 in position 10: ordinal not in range(128) This error does suggest that a unicode object has gotten into the send buffer somehow. Check to make sure the content you returned from render_GET is of type `str` and that all of the header names and values that you set are also of type `str`. A `unicode` object slipping in to one of those places is the most likely cause of this problem. Jean-Paul _______________________________________________ Twisted-web mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
