Python获取服务器响应json并输出到屏幕

33 篇文章 0 订阅
30 篇文章 0 订阅

前言

---------2021年12月8日---------

HTTP协议中POST请求有4种方式,这里介绍两种

application/jsonapplication/x-www-form-urlencoded

前者是将JSON数据作为载荷发送给服务器,后者是直接发送一般类型的数据给服务器
知道这个之后你就能理解为什么我之前会出错了

起因

我需要编写一个用Python制作的登录脚本,但是得获取服务器反馈的JSON数据否则不知道是否成功。
我先用常规方法试了一下,下面是我的代码

import requests
url="网址"
header={"Host":"网址","User-Agent":"信息",}
data={"uid":"****","token":"*****"}
r=requests.post(url,data=data,headers=header)
#这里我是将payload定为data类型的
print(r.json())

然后服务器给我的反馈就是

{'data': None, 'message': 'invalid input format: invalid json value', 'retcode': -502}
#错误无法输出

于是我在网上找了各种各样的教程,一个接一个的都试了一遍,发现全部没用,最后我改了个参数,好了,一切正常了。

解法

import requests
url="网址"
header={"Host":"网址","User-Agent":"信息",}
data={"uid":"****","token":"*****"}
r=requests.post(url,json=data,headers=header)
#这里我将payload改为了json类型
print(r.json())

服务器反馈成功,没有报错

{'retcode': 0, 
'message': 'OK', 
'data': {'account': {'uid': '****', 'name': '', 
'email': '****', 
'mobile': '****', 
'is_email_verify': '****', 
'realname': '****', 
'identity_card': '****', 
'token': '****', 
'safe_mobile': '****', 'facebook_name': '',
 'google_name': '', 
 'twitter_name': '', 
 'game_center_name': '', 
 'apple_name': '', 
 'sony_name': '', 
 'tap_name': '', 
 'country': ''}, 
 'device_grant_required': False, 
 'safe_moblie_required': False, 
 'realperson_required': False}}

问题解决

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值