Python请求以编程方式将Dev Tools Form Data预先格式化为字典

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

我正在尝试使用HTTP请求更新系统上已保存的表单。由于我们使用的第三方应用程序的服务器配置,POST更新需要每次都发送一个完全填写的有效负载。

我想通过恢复服务器上已存在的表单数据并将其转换为字典来解决这个问题。然后更改我需要的任何值并重新发布以进行更改服务器端。

我们使用的应用程序在单击特定表单的保存按钮时发送POST请求。

在这里,我发送一个没有负载的发布请求。 [这模拟按下保存按钮,也是开发工具向我显示我想要捕获的有效负载的点]

post_test = self.session.post(url_to_retrieve_from)

我认为现在我应该能够打印输出,这应该类似于Google Dev工具Form数据捕获的内容。

print(post_test.text)

这只是给我在网页上找到的html。

如果Dev Tools可以从服务器获得这个,那么我也应该能够?

我试图通过请求得到的数据示例:Form Data

python http automation python-requests
1个回答
0
投票

如果Dev Tools可以从服务器获得这个,那么我也应该能够?

当然是。在请求中,您在data关键字中传递表单数据:

import requests

url = 'http://www.example.com'

data = {
    'name': 'value',
}

response = requests.post(url, data=data)

您可以通过以下方式从响应中获取您发送的数据:

import requests

response = requests.post('http://your_url', data=data) # send request

body = response.request.body

parsed_data = dict(data.split('=') for data in body.split('&')) # parse request body

Here您可以找到有关数据参数的更多信息

documentation中,在类requests.Response中我们可以找到属性:

请求=无

PreparedRequest对象,这是一个响应。

requests.PreparedRequest课上我们可以读到:

body =无

请求正文发送到服务器。

© www.soinside.com 2019 - 2024. All rights reserved.