【问题标题】:How to use Python requests to post form as curl PUT -F如何使用 Python 请求将表单发布为 curl PUT -F
【发布时间】:2016-10-07 19:10:25
【问题描述】:

我正在尝试使用 Python 的请求复制 curl PUT -F "file=@someFile" 的使用。 我需要使用的 Content-Type 是:multipart/form-data 我尝试了不同的变体,例如:

r = requests.put(url, headers=headers, files={'file': (full_filename, open(full_filename, 'rb'), content_type)}, verify=False, stream=True)

r = requests.put(url, headers=headers, data={'file': (full_filename, open(full_filename, 'rb'), content_type)}, verify=False, stream=True)

r = requests.put(url, headers=headers, params={'file': (full_filename, open(full_filename, 'rb'), content_type)}, verify=False, stream=True)

在我尝试的所有方法中,我的标题中都有'Content-Type': 'multipart/form-data'

但对于上述所有情况,我得到400 作为回复。

我看到一些关于 stackoverflow 的问题,但没有一个答案能回答我的问题,所以我要开一个新的。

【问题讨论】:

    标签: python curl python-requests multipartform-data put


    【解决方案1】:

    感谢https://stackoverflow.com/a/17438575/1659322 我设法解决了。我在这里引用他的回答是因为我觉得这非常重要:

    您永远不应该自己设置该标题。我们用边界正确设置标题。如果您设置该标头,我们不会,您的服务器将不知道预期的边界(因为它已添加到标头中)。删除您的自定义 Content-Type 标头,您会没事的。

    我喜欢 Requests,但这对我来说是一个非常令人困惑的实现部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2012-11-26
      • 2017-10-17
      • 2015-02-16
      • 1970-01-01
      相关资源
      最近更新 更多