使用 python 模块请求上传 Strava GPX 时出现 ValueError - 为什么?

Strava GPX upload with python module requests is giving a ValueError - why?

我不明白为什么会出现这个 ValueError?

import requests

headers = {'authorization': 'Bearer XXXXXXXXXXXXXXXX'}
files = [{'file': open('../poc_data/Sport-sessions/GPS-data/2012-08-09_05-32-43-UTC_55d566fa93bc7d9d1757b8e0.gpx', 'rb')}, {'data_type': 'gpx'}, {'Content-Type': 'multipart/form-data'}]

r = requests.post('https://www.strava.com/api/v3/uploads', headers=headers, files=files)

关于 API-design 产生这种效果的原因:它需要一个名为 headers 的显式字典和一个名为 params .
在上面给出的示例中,我只发送了一个 (headers),这解释了 ValueError。

此代码有效:

import requests


files = {
    'file': open('../poc_data/Sport-sessions/GPS-data/2012-08-09_05-32-43-UTC_55d566fa93bc7d9d1757b8e0.gpx', 'rb')
}
headers = {
    'authorization': 'Bearer XXXXXXXXXXXXXXXX'
}
params = {
    'data_type': 'gpx'
}
url = 'https://www.strava.com/api/v3/uploads'


r = requests.post(files=files, headers=headers, params=params, url=url)