Requests 库能不能自定义 boundary

2016-08-05 15:41:18 +08:00
 ecloud
Requests 库默认发送 multipart 是自动在头和消息体中加入 boundary 的
但是它自动生成的头里没有 chareset=utf-8 ,因此造成中文编码问题
虽然 Requests 库支持自定义头,可以加入 chareset 和 boundary ,但是在消息体里面加 boundary 怎么实现?找了半天网上也米有相关信息……
2505 次点击
所在节点    Python
4 条回复
pc10201
2016-08-05 17:32:42 +08:00
用 python 3 支持中文附件传送,将 Python35\Lib\site-packages\requests\packages\urllib3\fields.py 中的
value = email.utils.encode_rfc2231(value, 'utf-8')
改为
value = '%s="%s"' % (name, value)
即可
ecloud
2016-08-05 22:26:50 +08:00
@pc10201 这都哪跟哪?我说的跟发邮件有半毛钱关系?
aec4d
2016-08-06 12:18:38 +08:00
requests 为了自身的代码简洁是不支持自定义分隔符的 不过你可以用第三方辅助库 requests_toolbelt
见 github 上的讨论 https://github.com/kennethreitz/requests/issues/1997
julyclyde
2016-08-06 13:26:13 +08:00
@ecloud 他回答的也跟邮件没关系啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/297388

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX