繁体   English   中英

Python请求发送带有表单数据输入的POST请求

[英]Python requests to send POST request with form-data input

我有一个向系统发送请求的 API,我们将正文请求作为表单数据选项发送。

  1. 键:文档,值:sample.doc,类型:文件
  2. 键:请求,值:{“数据”:{“数字”:“17329937082”,“格式”:“MSW”}},类型:文本

如何使用请求在 Pyhton 脚本中实现这一点。 这在 Postman 中有效,我试图用 python 脚本调用这个 API。

对于表单编码数据,您需要将data kwarg 与字典配对,而不是字符串。 为了演示这是如何工作的,我将使用requests.Request对象:

from requests import Request
import json

request_dict = {'Data': {'Number': "17329937082", "Format": "MSW"}}

data = {
    'Document': open('sample.doc', 'rb'),   # open in bytes-mode
    'Request': json.dumps(request_dict)     # formats the dict to json text
}

r = Request('GET', 'https://my-url.com', data=data)
req = r.prepare()

r.headers
{'Content-Length': '80595', 'Content-Type': 'application/x-www-form-urlencoded'}

所以在正常的请求中,它看起来像:

import requests
import json

request_dict = {'Data': {'Number': "17329937082", "Format": "MSW"}}

data = {
    'Document': open('sample.doc', 'rb'),   # open in bytes-mode
    'Request': json.dumps(request_dict)     # formats the dict to json text
}

r = requests.get('my_url.com', data=data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM