BaseHTTPRequestHandler在由pythonw.exe 3.1运行时挂起

时间:2011-02-24 14:42:48

标签: python http python-3.x pythonw

以下代码适用于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,但也没有运气。

1 个答案:

答案 0 :(得分:1)

您正在打印到stdout。 pythonw.exe没有stdout,因为它没有连接到终端。我的猜测是,这与它有关。

尝试将stdout重定向到文件,或者更快,删除print()