python实现以application/json格式为请求体的http post请求

  • 接口传递数据格式类型为json格式,如下图抓包查看

 

 

  • Python实现脚本请求接口并以中文打印接口返回的数据
 1 import json
 2 import requests
 3 
 4 url = "https://....//Api/User/...."
 5 values = {'token':'4CAC044621D1EE5DC8D573BA019EE4FD2CD87859','lang':'jp'}
 6 # 打印values的数据类型,输出<class 'dict'>
 7 print(type(values))
 8 print(values)
 9 # json.dump将python对象编码成json字符串
10 values_json = json.dumps(values)
11 # 打印编码成json字符串的values_json的数据类型,输出<class 'str'>
12 print(type(values_json))
13 print(values_json)
14 # requests库提交数据进行post请求
15 req = requests.post(url, data=values_json)
16 # 打印Unicode编码格式的json数据
17 print(req.text)
18 # 使用json.dumps()时需要对象相应的类型是json可序列化的
19 change = req.json()
20 # json.dumps序列化时对中文默认使用ASCII编码,如果无任何配置则打印的均为ascii字符,输出中文需要指定ensure_ascii=False
21 new_req = json.dumps(change, ensure_ascii=False)
22 # 打印接口返回的数据,且以中文编码
23 print(new_req)

 

  • 执行脚本,接口返回数据

 

  • 使用到的函数

json.dump()                      将python对象编码成json字符串

requests.post(url, data)    requests库提交数据进行post请求

req.json()                          在使用json.dumps前将对象req进行json可序列化

json.dumps(change, ensure_ascii=False)  json.dumps序列化数据并输入中文编码数据

 

  • 脚本执行过程报错记录,requests爬虫时开启代理会报以下错误

          requests.exceptions.SSLError: HTTPSConnectionPool(host='api.****.cn', port=443):Max retries exceeded with url: //Api/User/getStaffList (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

转载于:https://www.cnblogs.com/kristin/p/10342959.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值