Python SimpleHTTPServer和SocketServer

Python SimpleHTTPServer和SocketServer,python,python-2.7,socketserver,simplehttpserver,Python,Python 2.7,Socketserver,Simplehttpserver,我创建了一个“handler”python脚本,如下所示: import SimpleHTTPServer import SocketServer PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(("", PORT), Handler) print "Serving at port:", PORT httpd.serve_forever() 我还有

我创建了一个“handler”python脚本,如下所示:

import SimpleHTTPServer
import SocketServer

PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "Serving at port:", PORT
httpd.serve_forever()
我还有一个javascript函数,它通过URL请求向服务器发送信息。这一切都很好,当我运行我的处理程序脚本,然后运行我的javascript时,我可以在终端中看到来自JS的所有数据:

localhost.localadmin - - [20/Feb/2013] "GET /?var=data/ HTTP/1.1" 200 -
我想做的是能够从我的处理程序脚本访问这些数据,理想情况下是这样的:

data = httpd.server_forever()  #How do I do somethign like this
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
  def do_GET(self):
      # Your code here
      print "Client requested:", self.command, self.path

      SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

PORT = 8000

httpd = SocketServer.TCPServer(("", PORT), MyHandler)

print "Serving at port:", PORT
httpd.serve_forever()

我如何完成这样一件事?

您可以继承
SimpleHTTPServer.SimpleHTTPRequestHandler
如下:

data = httpd.server_forever()  #How do I do somethign like this
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
  def do_GET(self):
      # Your code here
      print "Client requested:", self.command, self.path

      SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

PORT = 8000

httpd = SocketServer.TCPServer(("", PORT), MyHandler)

print "Serving at port:", PORT
httpd.serve_forever()
将在控制台中打印:

Client requested GET /?var=data/

查看和上的文档以了解更多信息。

确定感谢它的工作,但正在打印两次。我已经深入研究了代码,但找不到原因?(这没什么大不了的,只是好奇)实际上它可能与my.js有关,如果您在每个连接上都得到这样的输出:
Client requested:GET/
`localhost.localdomain---[21/Feb/2013 00:38:24]“GET/HTTP/1.1”200-`Client requested:GET/localhost.localdomain---[21/Feb/2013 00:38:24]“GET/HTTP/1.1”200-`那么你的js可能有问题。或者你只是不想要这个
localhost.localdomain---[21/Feb/2013 00:38:24]“GET/HTTP/1.1”“200-
要打印吗?是否有方法检查我的处理程序脚本是否成功?i、 e.检查响应是否为200?尝试覆盖
send_response
而不是do_-GET:class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):def send_response(self,code,message=None):SimpleHTTPServer.SimpleHTTPRequestHandler.send_response(self,code,message)print“客户端请求的:”,self.command,self.path打印“代码:”,代码