【问题标题】:Python script generated by Postman not workingPostman 生成的 Python 脚本不起作用
【发布时间】:2020-05-21 20:42:11
【问题描述】:

下面的代码基本上是由 Postman 生成的。我已经从标题中删除了“Content-Type”,因为我知道这不是必需的。我还概括了 URL 路径等。但是我收到一条错误消息: b'{"Message":"发生错误。详细信息:将 MIME 多部分正文部分写入输出流时出错。"}'

但是,当我从 Postman 运行该请求时,它确实有效。我做错了什么?

import requests

url = "https://website.com/api/inputs/file/upload/Test/12/"

payload = {}
files = [
  ('', open('C:/Users/jmas/Documents/Demo/test.csv','rb'))
]
headers = {
  'Authorization': 'Bearer 0eE6r7DWAIriN6gBR1-5WJI- 
9ZsfgE13JEthzuSXKQ9A05sbt5xdn8cAcV3Sz16D4thYNBcr6dQGdIcivSOpo- 
0dz7tAVP19trL2bwQtQez6FyzZqJFqPQrHm7fLee9eEr5GSpth0JfeqV5Gt7z_juqB3dHDBINu1oxh9G- 
pF8VuSRpUkAOujSMS0RysE1aptVqU1wAXLTXnKxUlDJLpTuQMCQGnFwqNvUWx3mDQ9xh4pw-ZaKw8TMvWaYgtmd1Z- 
oAp2IgvP9bwV5pv5izyuUWIfaZyP0mqYlZu2'
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))
print(response.status_code)

【问题讨论】:

  • 如果重新添加内容类型会怎样?
  • 如果我将 'Content-Type': 'application/x-www-form-urlencoded' 添加到标题中,然后我会返回 b'' 和状态代码 415(不支持的媒体类型)

标签: python api post python-requests postman


【解决方案1】:

您的有效负载只是一个空字典。删除data = payload

【讨论】:

【解决方案2】:

您正在通过请求传递有效负载,但此字典为空。

我猜你需要这样的东西:

url = 'https://website.com/api/inputs/file/upload/Test/12/'

files = {'': open('C:/Users/jmas/Documents/Demo/test.csv', 'rb')}

headers = {
    'Authorization': 'Bearer 0eE6r7DWAIriN6gBR1-5WJI-9ZsfgE13JEthzuSXKQ9A05sbt5xdn8cAcV3Sz16D4thYNBcr6dQGdIcivSOpo -0dz7tAVP19trL2bwQtQez6FyzZqJFqPQrHm7fLee9eEr5GSpth0JfeqV5Gt7z_juqB3dHDBINu1oxh9G -pF8VuSRpUkAOujSMS0RysE1aptVqU1wAXLTXnKxUlDJLpTuQMCQGnFwqNvUWx3mDQ9xh4pw - ZaKw8TMvWaYgtmd1Z - oAp2IgvP9bwV5pv5izyuUWIfaZyP0mqYlZu2'
}

response = requests.post(url, headers=headers, files=files)
print(response)

您的标题格式似乎不符合 pep8 规则,请尝试更改它以使其格式正确。

【讨论】:

    【解决方案3】:

    成功!我在文件参数(字典)中添加了“text/csv”,文件成功上传。

    files = {"file": ("PremSet_2UB_0LB_NoRenewalInfo", 
    open('C:/Users/jmas/Documents/Demo/test.csv', 'rb'), 'text/csv')}
    

    【讨论】:

      猜你喜欢
      • 2017-09-09
      • 2016-10-15
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 2015-03-31
      • 1970-01-01
      相关资源
      最近更新 更多