V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ecloud
V2EX  ›  Python

Requests 库能不能自定义 boundary

  •  
  •   ecloud ·
    yecloud · 2016-08-05 15:41:18 +08:00 · 2505 次点击
    这是一个创建于 3021 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Requests 库默认发送 multipart 是自动在头和消息体中加入 boundary 的
    但是它自动生成的头里没有 chareset=utf-8 ,因此造成中文编码问题
    虽然 Requests 库支持自定义头,可以加入 chareset 和 boundary ,但是在消息体里面加 boundary 怎么实现?找了半天网上也米有相关信息……
    4 条回复    2016-08-06 13:26:13 +08:00
    pc10201
        1
    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
        2
    ecloud  
    OP
       2016-08-05 22:26:50 +08:00
    @pc10201 这都哪跟哪?我说的跟发邮件有半毛钱关系?
    aec4d
        3
    aec4d  
       2016-08-06 12:18:38 +08:00
    requests 为了自身的代码简洁是不支持自定义分隔符的 不过你可以用第三方辅助库 requests_toolbelt
    见 github 上的讨论 https://github.com/kennethreitz/requests/issues/1997
    julyclyde
        4
    julyclyde  
       2016-08-06 13:26:13 +08:00
    @ecloud 他回答的也跟邮件没关系啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:52 · PVG 03:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.