首页 > 解决方案 > 解析 POST 标头/消息响应的简单 python 服务器

问题描述

我正在尝试创建一个简单的 python 服务器,它可以解析从智能集线器发送的 POST 响应。它以 HTTP POST(带有适当的标头)的形式发送数据,以 JSON 的形式发送正文。我正在寻找一种方法来剥离标头并解析 json 正文,但如果不求助于手动解析,我似乎无法找到任何合适的东西。

这就是我现在所拥有的。理想情况下,我正在寻找一个处理标题/正文本身分离的库。

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen(1)
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data=conn.recv(1024)
            if not data:
                break
            ddata = data.decode('utf-8')
            print("Decoded data: %s\n\n\n" % ddata)

            #This doesn't work because it's trying to decode both the header and body, and the header isn't JSON    
            #parsed_data = json.loads(ddata)
            #print("Parsed data: %s\n\n\" % parsed_data)

这是我得到的数据:

POST / HTTP/1.1
Accept: */* User-Agent: Linux UPnP/1.0 Device HOST:
192.168.0.115:8080 Content-Type: application/json Content-Length: 17

{"@test_value":8}

谢谢!

标签: pythonpython-3.xsocketshttpserver

解决方案


推荐阅读