如何解析HTTP请求并将其放入python的字典中?

问题描述 投票:0回答:1

我有一个正在使用的TCP套接字,我想创建一个函数来解析接收到的标头并将其放入字典中。请求进入并存储在我的变量数据中,如下所示:

data = connection.recv(4096).decode()

然后我有了一个包含这些头的单独的py文件

class dictionary:
    def __init__(self,data,key,value):
        my_dict = {}
        #grab the request
        my_dict["request"] = data.split[0]
        #grab the path
        my_dict["path"] = data.split[1]
        if(my_dict["request" == "GET"]):
            return dictionary

data.split [0]获取请求(无论是GET还是POST请求),而data.split [1]获取路径。在这种情况下,我的主页就是“ /”。我遇到的问题源于请求和路径之后的问题。对于GET请求,我不需要找到请求的“ Content-Length”部分,因为它根本不存在。但是,对于POST请求,我确实需要找到它。我该怎么做呢?作为参考,GET请求如下所示:

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

发布请求的外观如下:

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

谢谢你!

python python-3.x http post get
1个回答
-2
投票

如果您具有已解析的http文件,我想您可以使用dict()函数将其转换。

您可以从这样的网站中提取http代码:

import requests
from bs4 import BeautifulSoup

your_url = "http://your-url.com"
r = requests.get(url = your_url)

# parsing the data
soup = BeautifulSoup(r.text, 'html.parser')
© www.soinside.com 2019 - 2024. All rights reserved.