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
gyh
V2EX  ›  Python

使用 requests 提交 multipart form data 时怎么插入一个值为字串的 field

  •  
  •   gyh · 2017-09-09 16:32:43 +08:00 · 2437 次点击
    这是一个创建于 2630 天前的主题,其中的信息可能已经有所发展或是发生改变。

    抓包到的请求是这样的:

    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="fid"
    
    1
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="moduleid"
    
    5
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="from"
    
    album
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="old"
    
    
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="isremote"
    
    0
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="remote"
    
    http://
    -----------------------------13151347596532282191711782459
    Content-Disposition: form-data; name="upalbum"; filename="\B0·Ұͺ\D5ͼ.png"
    Content-Type: image/png
    

    python 代码:

    import requests
    multipart_form_data = {
        'upalbum': ('111.png', open('1.png', 'rb'), 'image/png'),
        'fid': ('', ''),
        'muduleid': ('', '5'),
        'from': ('', 'album'),
        'old': ('', ''),
        'isremote': ('', '0'),
        'remote': ('', 'http://')
    }
    requests.post('http://127.0.0.1:8888', files=multipart_form_data)
    

    然后在 fiddle 中看到模拟的请求少了几个 field:

    --9b67b0c1b58b473d86ca619bac4bdd0d
    Content-Disposition: form-data; name="from"; filename=""
    
    album
    --9b67b0c1b58b473d86ca619bac4bdd0d
    Content-Disposition: form-data; name="fid"; filename=""
    
    
    --9b67b0c1b58b473d86ca619bac4bdd0d
    Content-Disposition: form-data; name="upalbum"; filename="111.png"
    Content-Type: image/png
    
    2 条回复    2017-09-10 14:13:48 +08:00
    vZexc0m
        1
    vZexc0m  
       2017-09-10 13:49:03 +08:00   ❤️ 1
    其余字段放在放在 data 里面
    gyh
        2
    gyh  
    OP
       2017-09-10 14:13:48 +08:00
    @vZexc0m #1 解决了,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5683 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 06:12 · PVG 14:12 · LAX 22:12 · JFK 01:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.