【问题标题】:Multipart POST using python requests使用 python 请求的多部分 POST
【发布时间】:2013-11-26 17:50:18
【问题描述】:

我正在使用 python 包请求进行多部分 POST。 我使用 xlrd 更改 Excel 文件中的一些值,将其保存,然后在多部分 POST 中发送。 当我在我的 Mac 上本地运行它时,这工作正常,但是当我将代码放在远程机器上并发出相同的请求时,正文内容类型为空白,而本地正文内容类型为 application/vnd.ms-excel。所以我的问题是,有没有办法使用 python 请求强制执行内容类型,以便在这种情况下正文内容类型是 application/vnd.ms-excel。 抱歉不能发布任何代码,因为我在这台机器上没有它。

【问题讨论】:

    标签: python python-2.7 mime-types python-requests


    【解决方案1】:

    files 参数接受元组键的字典,格式如下:

    files = {'name': (<filename>, <file object>, <content type>, <per-part headers>)}
    

    在您的具体情况下,您可以这样写:

    files = {'file': ('filename.xls', open('filename.xls'), 'application/vnd.ms-excel', {})}
    

    应该没问题。

    【讨论】:

      【解决方案2】:

      我相信你可以使用 headers 参数,例如

      requests.post(url, data=my_data, headers={"Content-type": "application/vnd.ms-excel"})
      

      【讨论】:

      • 会不会只是将其添加为 http 请求中的标头,而不是将其添加到根据您发送的文件类型设置内容类型的正文中?
      • 这不是他想要的。多部分请求中的每个部分都可以有一个内容类型标头。他不打算将请求的内容类型设置为整体。
      猜你喜欢
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 2019-02-19
      • 2016-06-13
      • 1970-01-01
      • 2016-10-19
      相关资源
      最近更新 更多