Python发送POST请求/多部分/表单数据

时间:2019-12-05 11:30:41

标签: python api post python-requests multipartform-data

我只是在工作API连接。我已经发出了一些GET和PUT请求,但是现在我对POST有问题。 API documantation is here。这是我测试的代码,但收到400错误的请求:

("", "-----")

有人知道我该如何处理吗?

1 个答案:

答案 0 :(得分:0)

好像您缺少order_documents参数,它必须是一个数组,也需要称为order_documents。

尝试将data变量更改为:

data = {"order_documents": [ {'file_name':"fv.pdf", 'type_code':'CUSTOMER_INVOICE' } ] }

API期望将files作为参数名称,并且您的字典将file发送到服务器。您为files指定的参数名称session.post仅用于requests库,而不是发送给服务器的实际参数。 该API还期望一个数组中有多个文件,因此您需要更改files对象。

files = [
    ('files', ('fv.pdf', open(r"C:\python\API\fv.pdf", 'rb')),
]

此外,除非您计划为后续请求多次使用会话对象,否则我认为您不需要使用request.Session(),而只需要使用request.post()。