1.用python session.post如何设置multipart form data格式?
2.session.post函数中是否有默认的数据格式?
2.session.post函数中是否有默认的数据格式?
使用文言一心和答主查阅资料提供:
Python 的 requests 库(它提供了 Session 对象)可以轻松地设置 multipart form data 格式。
import requests
url = 'http://httpbin.org/post'
session = requests.Session()
payload = {
"key1": "value1",
"key2": "value2",
}
files = [
("file_name", ("test.txt", open('test.txt', 'rb'), 'text/plain')),
]
response = session.post(url, data=payload, files=files)
上述示例将表单数据和文件一起发送。在 files 参数中,我们传递一个由元组组成的列表,每个元组的格式为( fieldname, (filename, fileobj, content_type))。
如果你在 requests.post() 或 session.post() 函数中不显示地设置数据格式,那么默认的数据格式会是 application/x-www-form-urlencoded。如果你添加了 files 参数,那么 requests 会自动设置 Content-Type 为 multipart/form-data。
如果你需要发送 JSON 格式的数据,你可以使用 json 参数:
import requests
import json
url = 'http://httpbin.org/post'
session = requests.Session()
payload = {
"key1": "value1",
"key2": "value2",
}
response = session.post(url, json=payload)
上述代码会自动将 payload 转化为 JSON 格式,并且设置 Content-Type 为 application/json。