我要使用以下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.write
和self.wfile.write
之间的区别。我尝试使用encode
和decode
,但总是收到非常混乱的错误消息。如何将错误消息打印到Web服务器控制台并将其返回给POST的发起者?