【问题标题】:How to accept and handle incoming calls如何接听和处理来电
【发布时间】:2018-04-22 04:43:05
【问题描述】:

我能够从 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?

是否有任何实际构建在上述代码之上的示例来展示如何处理传入的数据?一个用例是某人向服务器发布信息。

【问题讨论】:

    标签: python simplehttpserver


    【解决方案1】:

    GET 请求进入时(由curl 发送到您的服务器),SimpleHTTPRequestHandler.do_GET 在幕后被调用。 SimpleHTTPRequestHandler 本身是 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 并打印它们或对它们做任何你想做的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      相关资源
      最近更新 更多