栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

requests中的post与get服务

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

requests中的post与get服务

哈喽各位大佬好,今天是要写一个post服务,调用还是post,全post,参考我之前的博文,这里再次看看坑在哪里。

For Recommendation in Deep learning QQ Group 277356808

For deep learning QQ Second Group 629530787

I'm here waiting for you

不接受这个网页的私聊/私信!!!
欢迎关注微信视频号:小明哥直播间

 1-做个post服务

先看传来的数据格式,data=param为字典,如下:

post(url, data=None, json=None, **kwargs)
    Sends a POST request.
    
    :param url: URL for the new :class:`Request` object.
    :param data: (optional) Dictionary, list of tuples, bytes, or file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) json data to send in the body of the :class:`Request`.
    :param **kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response ` object
    :rtype: requests.Response

此时的服务若采用get形式,那么无论是post形式的调用得不到任何数据,

#服务
flask.request.args.get
#调用
post形式,无论数据是data还是json,有没有json.dumps都一样获取不到数据

如果是get_json那么json直接传字典或者data采用json.dumps均可

>>> requests.post(url3,data=json.dumps(data)).json()
{ 'userid': 'xiaomingge'}
>>> requests.post(url3,json=data).json()
{'userid': 'xiaomingge'}

如果要传data为直接的字典格式,无json-dumps包装,只能用get_data(不带参数)然后得到如下形式:

b'userid=xiaomingge&num=100&userid2=xmg'

解码后手动分割即可,我目前没有想到更高效的方法。

2-post请求

无论是json或data形式,都可以采用data-decode解码后json-loads后得到最终的字典形式。感谢同事大佬。

愿我们终有重逢之时,而你还记得我们曾经讨论的话题。

【0924】

再次验证:只有是json形式才可以,post就json-loads,get就get-json。 

【0926】

事实证明,我的猜测是正确的,

如果想传递有嵌套的字典(就是字典中套字典),那么要么对它进行序列化(data=dumps),要么就是json=大字典,否则服务端解析不出来嵌套的字典,云程序员别瞎吹牛逼了,累死你也解析不出来。因为在传递时数据已经丢了。

如果你确定传递的字典就是单纯的key-value,没有字典套字典,也没有value为其他数据格式的,value仅为数值或者字符串的,你随便玩都可以。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号