"message" : "Required request part 'file' is not present"



我想使用 REST 和 python 上传一个文件。我能够使用邮递员做到这一点。但是当我从 Postman 那里获取 Python 代码并尝试使用请求模块自行执行它时,我收到以下错误。请帮忙。

import requests
url = "https://url******"
payload = "------WebKitFormBoundary7MA4YWxkTrZu0gWrnContent-Disposition: 
form-data; name="file"; filename="Path to file"rnrnrn------
WebKitFormBoundary7MA4YWxkTrZu0gW--"
headers = {
    'content-type': "multipart/form-data; boundary=----
WebKitFormBoundary7MA4YWxkTrZu0gW",
    'auth_token': auth_token,
    'cache-control': "no-cache",
}
response = requests.request("POST", url, data=payload, headers=headers, 
verify=False)
print(response.text)
>>> response.text
u'{"message":"Required request part 'file' is not 
present","detailedMessage":"
","errorCode":-1,"httpStatus":500,"moreInfo":""}'

当我尝试从失眠中为类似的请求生成 python 代码时,我遇到了同样的问题。我通过对我的 python 代码进行以下更改来修复它:

import requests
url = "https://url******"
files = { 'file': ('file.wav', open('/path/to/file.wav', "rb"), 'audio/wave') }
headers = { 'auth_token': auth_token }
response = requests.request("POST", url, files=files, headers=headers)
print(response.text)

此问题是由标头上的'Content-Type': 'multipart/form-data; boundary=---- WebKitFormBoundary7MA4YWxkTrZu0gW'设置引起的。使用files时,将不再需要此设置。

在我的情况下,该文件是 wav 文件,可以相应地更改 mime 类型或完全删除(对我有用(。

我在使用请求上传文件时遇到了同样的问题。

1. 通过从标题中删除内容类型 2. 不要在有效负载上执行 json.dumps

将解决问题。

import requests
file_path='/home/ubuntu/workspace/imagename.jpg'
file_name=os.path.basename(file_path)    
namew, extension = os.path.splitext(file_name)
type_dict = {'.pdf': 'application/pdf',
                 '.jpeg': 'image/jpeg',
                 '.png': 'image/png',
                 '.tiff': 'image/tiff', '.jpg': 'image/jpg'}        
url = "https://dev.example.com/upload"
filetype = type_dict.get(extension, 'application/octet-stream')
payload={}
files=[
    ('file',(file_name,open(file_path,'rb'),filetype))
]
headers = {
    'Authorization': 'Token',
    }
response = requests.request("POST", url, headers=headers, data=payload, files=files)

由于获取错误的数据,错误似乎出现在您发布到的服务器上。 我没有您发布的网址,所以我不知道正确的数据形式。 尝试清楚地阅读参考资料会对您有所帮助。

最新更新