【问题标题】:How to convert a python post request to a Postman POST request如何将 python post 请求转换为 Postman POST 请求
【发布时间】:2019-10-11 02:02:10
【问题描述】:

我对托管我的烧瓶应用程序的服务器有一个 python 发布请求。它工作正常,我能够获得所需的数据。

但我想使用 POSTMAN 测试 API。我无法做到这一点,因为我在某种程度上不熟悉 POSTMAN。

下面是我的python代码。

import requests
import ast
import json

resp1 = {}
url = 'http://myflaskapiurl:port/route'
files = {'file': open(r'file that should be uploaded to the server', 'rb')}
r = requests.post(url, files=files, data={"flag":2})
headers = {
    'content-type': "multipart/form-data",
    'Content-Type': "application/x-www-form-urlencoded",
    'cache-control': "no-cache",
}
resp1 = ast.literal_eval(r.text)
print(resp1)

我正在努力解决我尝试发布到服务器的数据和文件是否应该在原始 json 或 form-data 或 x-www-form-urlencoded 正文部分的问题。还有实际的结构应该是什么。

因为每次我使用 body 的 form-data 或 x-www-form-urlencoded 部分发布此数据时,我都会收到错误提示

werkzeug.exceptions.BadRequestKeyError

werkzeug.exceptions.HTTPException.wrap..newcls: 400 Bad Request: KeyError: 'file'

【问题讨论】:

  • headers 变量的用途是什么? requests 在您提交文件时自动设置multipart/form-data。 (否则无法传输文件名。)另外,为什么它包含两次content-type
  • 问题不在于代码,正如我所说的,它运行良好。我得到了想要的输出。至于双重内容类型,我把它放在那里是为了表明我已经尝试过它们。我已经尝试过 form-data 和 x-www-form-urlencoded。两种方式我都能够将发布请求发送到服务器并接收正确的响应。

标签: python flask postman


【解决方案1】:

它应该是这样的:

“参数”选项卡应该是空的,也许您要在那里添加第二个file 参数?

【讨论】:

  • 我已经尝试过了,但仍然出现同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-09
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
相关资源
最近更新 更多