2

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

4

2 回答 2

8

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

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

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

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

那应该可以正常工作。

于 2013-11-14T09:52:59.680 回答
0

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

requests.post(url, data=my_data, headers={"Content-type": "application/vnd.ms-excel"})
于 2013-11-13T22:52:12.863 回答