Requsts 库如何 POST 纯文本?Content-Type 为 text/plain - V2EX
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
zhuzhuaini
V2EX    Python

Requsts 库如何 POST 纯文本?Content-Type 为 text/plain

  •  
  •   zhuzhuaini 2019-11-15 14:37:57 +08:00 3529 次点击
    这是一个创建于 2238 天前的主题,其中的信息可能已经有所发展或是发生改变。
    抓包获得 POST 体当中的内容是这样的:
    aa=1
    bb=2
    c=1

    我在 python 中构建了这样的字典:data={'aa':'1','bb':'2','c':'1'} 执行后抓包,发现内容是
    aa=1&bb=2&c=1


    我想了一个解决方案但是没有实现
    1.让 data 字典在连接的时候将"&"符号转换成"\n",ps:查了一下没有找到相应的解决方案...
    2.在网上查到可以使用传送文件的形式,但是抓包后发现变成了:
    --5af9e62e59d2513ddaa25c9d9ae43bd9
    Content-Disposition: form-data; name="file"; filename="data.txt"
    aa=1
    bb=2
    c=1
    --5af9e62e59d2513ddaa25c9d9ae43bd9--
    中间是对了 但是头和尾多了许多无用的东西.

    特来问问 V2 们,谢谢!!!!
    3 条回复    2019-11-15 17:01:45 +08:00
    islxyqwe
        1
    islxyqwe  
       2019-11-15 14:44:32 +08:00   1
    requests.post(url,data="\n".join(f'{k}={v}' for k,v in data.items()))
    zhuzhuaini
        2
    zhuzhuaini  
    OP
       2019-11-15 14:55:02 +08:00
    @islxyqwe 高手!佩服的五体投地!感谢!完美的解决了我的问题,我在网上查询,用了很多解决方案都是走了弯路...
    再次感谢!
    ClericPy
        3
    ClericPy  
       2019-11-15 17:01:45 +08:00
    data = '''aa=1
    bb=2
    c=1'''.encode('utf-8')

    不就行了


    https://github.com/psf/requests/blob/428f7a275914f60a8f1e76a7d69516d617433d30/requests/models.py#L506
    看下 Requests 的源码
    data 用 dict 格式是让 Requests 通过 _encode_params 函数自动转 application/x-www-form-urlencoded 类型参数来 post, 否则直接用 bytes 就好了, 你看看源码也会发现, 最后 data 总要转 bytes 类型的 body 的

    另, 这个请求可以直接导出 curl 么, 可以试试直接用 curlparse 的方式转 Requests 库的请求参数
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2965 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 10:23 PVG 18:23 LAX 02:23 JFK 05:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86