[英]Python sending POST requests/ multipart/form-data
我只是在工作中处理 API 连接。 我已经提出了一些 GET 和 PUT 请求,但现在我有 POST 问题。 API 文档在这里。 这是我测试的代码,但收到 400 个错误的请求:
import requests
files = {'files': ('fv.pdf', open(r"C:\python\API\fv.pdf", 'rb'))}
data = {"order_documents":[{'file_name':"fv.pdf", 'type_code':'CUSTOMER_INVOICE' }]}
header = {
'Authorization': '###########################',
}
response = requests.post("https://######.com/api/orders/40100476277994-A/documents", headers=header, files = files, data = data)
print(response.status_code)
print(response.url)
有人知道我该如何处理吗?
看起来您缺少order_documents
参数,它需要是一个数组,还需要称为 order_documents。
尝试将您的data
变量更改为:
data = {"order_documents": [ {'file_name':"fv.pdf", 'type_code':'CUSTOMER_INVOICE' } ] }
API 需要files
作为参数名称,您的字典将file
发送到服务器。 您提供给session.post
的参数名称files
仅用于requests
库,而不是发送到服务器的实际参数。 API 还需要一个数组中的多个文件,因此您需要更改文件对象。
files = [
('files', ('fv.pdf', open(r"C:\python\API\fv.pdf", 'rb')),
]
另外,我认为您不需要使用 requests.Session(),只需使用 requests.post(),除非您计划为后续请求多次使用会话对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.