2012-05-20 61 views
1

我真的想在webob.Response但返回错误二元发生通过webob.Response返回二进制数据

file = open(filePath, 'rb') 
buffer = file.read() 
file.close() 

self._response.body = buffer 

给人的回溯

"F:\Program Files\Python32\python.exe" G:/development/projects/AutoBlog/main.py 
Traceback (most recent call last): 
File "F:\Program Files\Python32\lib\wsgiref\handlers.py", line 137, in run 
    self.result = application(self.environ, self.start_response) 
File "G:/development/projects/AutoBlog/main.py", line 30, in application 
    print(wsgiApplication) 
File "F:\Program Files\Python32\lib\site-packages\webob\response.py", line 218, in __str__ 
    parts += ['', self.text if PY3 else self.body] 
File "F:\Program Files\Python32\lib\site-packages\webob\response.py", line 383, in _text__get 
    return body.decode(self.charset, self.unicode_errors) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte 
activate.adobe.com - - [20/May/2012 14:52:49] "GET /res/images/i.jpg HTTP/1.1" 500 59 

回答

1

貌似webob是对待自己的身体作为字符串,而它实际上是一个二进制对象。也许你需要设置内容类型?