当前位置: 首页 > article >正文

python基础知识(四)——发送请求、接口关联

一、requests库

  1. python发送http的接口请求,需要使用requests库
  2. 客户端–>服务器发送请求需要:请求地址、请求方法、请求头、请求体
  3. 服务器–>客户端作出响应:http响应状态码,响应头,响应体

注:详细介绍请看
接口测试(一)基础

二、注册(示例仅供参考)

# 请求url
urlRegister = "http://47.115.15.198:7001/smarthome/user/register"   

# 请求头
headerRegister = {"X-Lemonban-Media-Type":"lemonban.v2",
"Content-Type":"application/json"}                                  

#请求体
dataRegister = {
  "phone": "15219081994",
  "pwd": "1234567a",
  "rePwd": "1234567a",
  "userName": "ding94",
  "verificationCode": msgCode
}

1. 情景一:响应结果只有状态码
注:若请求体是json格式,首选json传参,即 requests.post( json = xxx )

#请求方法-post
responseRegister = requests.post(url=urlRegister, headers=headerRegister, json=dataRegister)
print(responseRegister)

在这里插入图片描述

2. 情景二:响应结果json格式、响应头、响应状态码

#请求方法-post
responseRegister = requests.post(url=urlRegister, headers=headerRegister, json=dataRegister).json()
print(responseRegister)

#获取响应头
responseHeaderRegister = requests.post(url=urlRegister,headers=headerRegister,json=dataRegister).headers
print(responseHeaderRegister)

#获取响应状态码
responseCodeRegister = requests.post(url=urlRegister,headers=headerRegister,json=dataRegister).status_code
print(responseCodeRegister)

在这里插入图片描述

三、接口关联

示例:根据响应结果,取token、id值

{
    'code': '0', 
    'msg': '操作成功', 
    'data': {
        'token_info': {
            'token_type': 'Bearer', 
            'expires_in': '2023-01-04 21:25:56', 
            'token': 'eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoiOTQ3NzgiLCJleHAiOjE2NzI4MzkxMDN9.GZsxqxw64VSWuQvWr1PEPv2GIMVOGzE-0TFjz4vzyrLhP4VJ0b81CW3K4afl9k-xqdV4RPG0h3uJRG9GWS2m4g'
            }, 
        'phone': '15219081993', 
        'user_name': 'ding93', 
        'id': 94778, 
        'type': False
    }
}
responseLogin = requests.post(url=urlLogin,headers=headerLogin,json=dataLogin).json()
  1. 方式一:通过字典嵌套取值
# 从登录响应体中取到token值内容,再赋值给token变量
token = responseLogin['data']['token_info']['token']

#从登录响应体中取到id值内容,再赋值给userId变量
userId = responseLogin['data']['id']    
  1. 方式二:jsonpath表达式
token = jsonpath.jsonpath(responseLogin,"$.data.token_info.token")[0]
print(token)

userId = jsonpath.jsonpath(responseLogin,"$.data.id")[0]
print(userId)

在这里插入图片描述

  1. token、id值的关联使用
urlCom = "http://47.115.15.198:7001/smarthome/merchant/complete"

headerCom = {
    "X-Lemonban-Media-Type":"lemonban.v2",
    "Content-Type":"application/json",
    "Authorization":"Bearer " + token
}

dataCom = {
  "address": "湖南省长沙市岳麓区xx街道",
  "establishDate": "2021-04-02",
  "legalPerson": "韩信",
  "licenseCode": "xh430646464sdfa",
  "licenseUrl": "http://127.0.0.1/smarthome/aaa.jpg",
  "merchantName": "青海文梅科技有限公司",
  "merchantType": 2,
  "registerAuthority": "城中区派出所",
  "tel": "18888888888",
  "userId": userId,
  "validityDate": "2033-05-02"
}

#获取响应结果
responseCom = requests.put(url=urlCom,headers=headerCom,json=dataCom).json()

四、get请求

1. get请求,请求数据为query类型,应使用param进行传参

urlMsgCode = "http://47.115.15.198:7001/smarthome/verificationCode/message"
dataMsgCode = {"phone":"15219081994"}
headerMsgCode = {"X-Lemonban-Media-Type":"lemonban.v2"}

responseMsgCode = requests.get(url=urlMsgCode,params=dataMsgCode,headers=headerMsgCode).json()
print(responseMsgCode)

运行结果示例:

{
    'code': '0', 
    'msg': '操作成功', 
    'data': '631812'
}

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/397230.html

相关文章:

  • 【nginx】client timed out和send_timeout的大小设置
  • Excel模板下载\数据导出
  • vue2/vue3中使用的富文本编辑器vue-quill
  • 关于在Reverse函数中不能使用L=s而是*L=*s的原因分析
  • AI开发-计算机视觉库-OpenCV
  • 【卡尔曼滤波】数据融合Fusion的应用 C语言、Python实现(Kalman Filter)
  • 问:说说SpringDAO及ORM的用法?
  • MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并--封装到存储过程中
  • Spring Boot基础教学:创建第一个Spring Boot项目
  • 背景替换大模型图像处理gradio部署服务
  • Vue 项目打包后环境变量丢失问题(清除缓存),区分.env和.env.*文件
  • 革新人脸图片智能修复
  • 【算法】【优选算法】前缀和(上)
  • ‌REST风格(Representational State Transfer)
  • 神经网络的正则化(一)
  • 设计模式:工厂方法模式和策略模式
  • “南海明珠”-黄岩岛(民主礁)领海基线WebGIS绘制实战
  • C# x Unity 从玩家控制类去分析命令模式该如何使用
  • 精通rust宏系列教程-调试过程宏
  • stm32 内部温度传感器使用
  • 封装一个省市区的筛选组件
  • 【提高篇】3.3 GPIO(三,工作模式详解 上)
  • MuMu模拟器安卓12安装Xposed 框架
  • python爬虫快速获取商品历史价格信息
  • Ubuntu 系统端口查询与管理详细分析
  • linux001.在Oracle VM VirtualBox中ubuntu虚拟系统扩容