Python 3 HTTPServer:无法返回异常

时间:2019-01-26 16:01:07

标签: python-3.x httpserver

我要使用以下Web服务器来处理POST请求。如果出现错误,我想将错误发送回发出POST请求的服务器,以便向用户显示。我还想在Web服务器输出中打印错误。

from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        content_length = int(self.headers['Content-Length'])
        body = self.rfile.read(content_length)
        try:
            result = json.loads(body, encoding='utf-8')
            self.send_response(200)
            self.end_headers()
            response = BytesIO()
            response.write(b'POST Received: ')
            response.write(body)
            self.wfile.write(response.getvalue())
        except Exception as err:
            self.wfile.write('Error: ' + str(err))

httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()

问题出现在行

self.wfile.write('Error: ' + str(err))

出现错误

TypeError: a bytes-like object is required, not 'str'

我对HTTPServer并不是很熟悉,所以我不确定这里发生了什么。我也不确定response.writeself.wfile.write之间的区别。我尝试使用encodedecode,但总是收到非常混乱的错误消息。如何将错误消息打印到Web服务器控制台并将其返回给POST的发起者?

0 个答案:

没有答案