技术分享1 分钟阅读
http中请求体常用格式,在Python requests中的实现
http中data的常用格式,在Python requests中的实现主要有以下几种:
•
Form-Encoded Data
这是最常见的HTTP数据格式,通常用于POST请求提交表单数据。在Python的
requests库中,你可以直接将字典传递给data参数,requests会自动将其编码为application/x-www-form-urlencoded格式。import requests
url = 'https://test.com/form'
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post(url, data=payload)
•
JSON Data
当API期望接收JSON格式的数据时,你需要将Python对象序列化为JSON字符串,并设置
headers中的Content-Type为application/json。在requests中,你可以使用json参数而不是data来自动完成这些操作。import requests
url = 'https://test.com/api'
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post(url, json=payload)
•
Multipart Form Data
这种格式常用于文件上传,因为它允许同时发送文本字段和二进制数据。在
requests中,你可以使用files参数来发送文件,同时也可以通过data参数发送其他表单字段。import requests
url = 'https://test.com/uploa'
files = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=files)
如果需要同时发送表单字段和文件,可以这样做:
files = {'file': ('report.csv', open('report.csv', 'rb'), 'text/csv')}
data = {'username': 'me', 'password': 'secret'}
response = requests.post(url, files=files, data=data)
•
Raw Data
对于某些特殊的API,你可能需要发送原始数据,这通常通过设置
data参数为一个字节字符串,并手动设置Content-Type头来实现。import requests
url = 'https://test.com/raw'
data = b'\\x00\\x01\\x02\\x03' # Raw byte string
headers = {'Content-Type': 'application/octet-stream'}
response = requests.post(url, data=data, headers=headers)
5.Query Paramsc
它们是URL中用于传递信息和设置请求参数的一部分,常常出现在URL的问号(?)之后,由一系列键值对组成,键值对之间以&符号分隔。
import requests
url = 'https://test.com/form'
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get(url, params=params)在使用requests发送HTTP请求时,正确设置数据的格式和相应的头信息是非常重要的,以确保服务器能够正确解析你发送的数据。每种格式都有其特定的应用场景,选择正确的格式对于与API的交互至关重要。
有关使用上的问题,欢迎您在底部评论区留言,一起交流~
读者评论
评论会同步写入该文在 Notion 中的页面底部(与正文同页,便于管理)。
暂无评论,欢迎抢沙发。