【接口测试】2_代码实现 _设置http请求语法

文章目录

  • 一、设置http请求语法(重点)
    • [1.1 请求方法](#1.1 请求方法)
    • [1.2 Response对象---获取响应内容](#1.2 Response对象—获取响应内容)
  • 二、应用案例
    • [2.1 入门案例](#2.1 入门案例)
    • [2.2 案例1-get请求](#2.2 案例1-get请求)
    • [2.3 案例2-post请求](#2.3 案例2-post请求)
      • [2.3.1 带表单数据的post请求](#2.3.1 带表单数据的post请求)
      • [2.3.2 带 json数据 的post请求](#2.3.2 带 json数据 的post请求)
    • [2.4 案例4-put请求](#2.4 案例4-put请求)
    • [2.5 案例5-delete请求](#2.5 案例5-delete请求)

一、设置http请求语法(重点)

1.1 请求方法

python 复制代码
response = requests.请求方法(url='URL地址', params={k:v}, headers={k:v},  
                    	data={k:v}, json={k:v}, cookies='cookie数据'(如:令牌))

-----------------------------------------------------------------------------------------
请求方法:
	get请求    - get方法
	post请求   - post方法
	put请求    - put方法
	delete请求 - delete方法
    
url:要访问的地址		  - string类型
params:查询参数		   - 字典
headers:请求头		    - 字典
data:表单格式请求体数据  - 字典   - tpshop商城项目
json:json格式请求体数据  - 字典  - ihrm项目

cookies:用来传递cookies

response:代表响应结果。

1.2 Response对象---获取响应内容

属性/方法 说明
response.url 请求url
response.status_code 响应状态码
response.cookies cookie信息
response.headers 响应头
response.text 文本形式的响应内容(获取响应体)
response.json() JSON形式的响应内容(获取响应体)
response.encoding 查看响应头部字符编码
python 复制代码
import requests

resp = requests.get("http://www.baidu.com")

# - 获取 URL: resp.url
print("获取 URL", resp.url)

# - 获取 响应状态码:resp.status_code
print("获取 响应状态码", resp.status_code)

# - 获取 Cookie:resp.cookies
print("获取 Cookie", resp.cookies)

# - 获取 响应头:resp.headers
print("取 响应头", resp.headers)

# - 获取 响应体:
#   - 文本格式:resp.text
print("响应体 - 文本格式", resp.text)

#   - json格式:resp.json()。 如果看到 JSONDecodeError 错误提示,说明 不能转换为 json
print("响应体 - json格式", resp.json())

二、应用案例

2.1 入门案例

使用Requests库访问 百度 http://www.baidu.com

python 复制代码
# 导包
import requests

# 发送 http请求,访问百度,得到响应结果
resp = requests.get(url="http://www.baidu.com")

# 打印 响应结果的文本
print(resp.text)

2.2 案例1-get请求

【带 查询参数 的get请求】使用Requests库,请求 tpshop商城 搜索商品接口。查询 iphone

python 复制代码
# 导包
import requests

# 发送 get请求,访问 tpshop搜索接口,得到响应结果.【下面两种实现方式一样,写法不一样】
# 方法1:resp = requests.get(url="http://192.168.189.135/index.php/Home/Goods/search.html?q=iphone")
resp = requests.get(url="http://192.168.189.135/index.php/Home/Goods/search.html",
                    params={"q": "iphone"})

# 打印响应结果
print(resp.text)

2.3 案例2-post请求

2.3.1 带表单数据的post请求

【带 表单数据 的post请求】使用Requests库,完成 tpshop商城 登录接口调用。返回 "验证码错误" 即可。

python 复制代码
# 导包
import requests

# 发送 post请求,登录,得响应结果
resp = requests.post(url="http://hmshop-test.itheima.net/index.php?m=Home&c=User&a=do_login&t=0.06754297110809726",
                     headers={"Content-Type": "application/x-www-form-urlencoded"},
                     data={"username": "13812345678", "password": "123456", "verify_code": "8888"})

# 打印 文本 响应结果i
print(resp.text)

# 打印 转换为 json格式的 响应结果
print(resp.json())

结果:

bash 复制代码
{"status":0,"msg":"\u9a8c\u8bc1\u7801\u9519\u8bef"}
{'status': 0, 'msg': '验证码错误'}

2.3.2 带 json数据 的post请求

【带 json数据 的post请求】使用Requests库,完成 iHRM系统 成功登录。返回 "令牌数据"。

python 复制代码
# 导包
import requests

# 发送 post请求,登录 ihrm。得响应结果
resp = requests.post(url="http://ihrm2-test.itheima.net/api/sys/login",
                     headers={"Content-Type": "application/json"},
                     json={"mobile": "13800000002", "password": "888itcast.CN764%..."})

# 打印响应结果,转json格式
print(resp.json())

结果:

bash 复制代码
{'success': True, 'code': 10000, 'message': '操作成功!', 'data': '2b0aa475-4dff-4659-a436-fe4e9c960f23'}

2.4 案例4-put请求

python 复制代码
# 修改员工
# 导包
import requests

# 发送 put请求,修改员工 。得响应结果
resp = requests.put(url="http://ihrm-test.itheima.net/api/sys/user/1492786854133620736",
                    headers={"Authorization": "4125e506-c36f-4f3c-a9af-2482ef915d9a"},
                    json={"username": "李大宝2号"})

# 打印响应结果,转json格式
print(resp.json())

2.5 案例5-delete请求

python 复制代码
# 删除员工
# 导包
import requests

# 发送 delete请求,删除员工 。得响应结果
resp = requests.delete(url="http://ihrm-test.itheima.net/api/sys/user/1493441214882635776",
                       headers={"Authorization": "ebf935b5-1b14-4ecf-8e1d-21cbb345739b"})

# 打印响应结果,转json格式
print(resp.json())
相关推荐
猫头虎19 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
不一样的故事12620 小时前
下的 “Wi-Fi参数配置” 列表,但您当前选中的导航菜单项是 “IP规划”。您遇到的 “IP加载不出来” 问题,很可能
网络协议·tcp/ip·华为
古城小栈21 小时前
Rust 网络请求库:reqwest
开发语言·网络·rust
qq_316837751 天前
IP网段冲突 配置指定ip使用指定的网络接口发送,而不经过默认网关
服务器·网络·tcp/ip
布史1 天前
Tailscale虚拟私有网络指南
linux·网络
枷锁—sha1 天前
彻底解决 Google Gemini 报错:异常流量与 IP 地址冲突排查指南
网络·网络协议·tcp/ip
Xの哲學1 天前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
-To be number.wan1 天前
经典真题精讲|2010年408统考第34题:文件传输最少需要多久?
网络·计算机网络
逐梦苍穹1 天前
不用公网 IP,把内网服务安全发布到公网:ZeroNews 快速上手
网络协议·tcp/ip·安全·内网穿透
知乎的哥廷根数学学派1 天前
基于多尺度注意力机制融合连续小波变换与原型网络的滚动轴承小样本故障诊断方法(Pytorch)
网络·人工智能·pytorch·python·深度学习·算法·机器学习