如何接受和处理来电

时间:2018-04-22 04:43:05

标签: python simplehttpserver

我能够从here

启动一个简单的python服务器
import SimpleHTTPServer
import SocketServer

PORT = 8000

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

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

print "serving at port", PORT
httpd.serve_forever()

我能够使用curl命令,看到它确实响应了我的目录列表。我能够在运行的服务器上看到200 GET消息,但没有其他信息。但是,有没有办法真正看到请求中的数据进入服务器并解析它?如果有人要向我的服务器发布一些信息(比如JSON格式),我怎样才能真正看到所有这些数据......甚至是URL?

是否有任何实际构建在上述代码上的示例显示如何处理数据?用例是将某些信息发布到服务器的人。

1 个答案:

答案 0 :(得分:1)

GET请求进入时(由curl发送到您的服务器),在后台调用SimpleHTTPRequestHandler.do_GETSimpleHTTPRequestHandler本身就是BaseHTTPRequestHandler的子类。

您可以定义自己的SimpleHTTPRequestHandler子类:

class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def do_GET():
        # your code here
        super(MyHandler, self).do_GET()

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

代替# your code here,您可以检查由BaseHTTPRequestHandler定义的属性,例如self.path并打印它们或随意做任何事情。

相关问题