一个简单的webhook代码案例,运行日志和接收信息打印到指定的文件

import json
from urllib.parse import unquote
from http.server import HTTPServer, BaseHTTPRequestHandler
import sys

class RequestHandler(BaseHTTPRequestHandler):
    def _writeheaders(self):
        print(self.path)
        print(self.headers)

    def do_Head(self):
        self._writeheaders()

    def do_GET(self):
        self._writeheaders()
        self.wfile.write(str(self.headers))

    def do_POST(self):
        self._writeheaders()
        data = self.rfile.read(int(self.headers['content-length']))
        data = unquote(str(data, encoding='utf-8'))
        json_obj = json.loads(data)
        # 打开文件
        output_file = open('/tmp/webhook-output.txt', 'a')
        # 备份当前的stdout文件
        original_stdout = sys.stdout
        # 重定向到文件
        sys.stdout = output_file
        print(json_obj)
        # 恢复stdout
        sys.stdout = original_stdout
        # 关闭文件
        output_file.close()


if __name__ == "__main__":
    addr = ('', 1314)
    server = HTTPServer(addr, RequestHandler)
    server.serve_forever()

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐