以下代码适用于python.exe但使用pythonw.exe失败。我在Windows 7上使用Python 3.1。
from http.server import BaseHTTPRequestHandler, HTTPServer
class FooHandler(BaseHTTPRequestHandler):
def do_POST(self):
length = int(self.headers['Content-Length'])
data = self.rfile.read(length)
print(data)
self.send_response(200)
self.send_header('Content-Length', '0')
self.end_headers()
httpd = HTTPServer(('localhost', 8000), FooHandler)
httpd.serve_forever()
当我开始发送回复时出错了。什么都没有写回来。如果我尝试另一个http连接,它将无法连接。我也尝试过使用self.wfile,但也没有运气。
答案 0 :(得分:1)
您正在打印到stdout。 pythonw.exe没有stdout,因为它没有连接到终端。我的猜测是,这与它有关。
尝试将stdout重定向到文件,或者更快,删除print()
。