【接口测试】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())
相关推荐
梁辰兴11 小时前
计算机网络基础:使用集线器的星型拓扑
服务器·网络·计算机网络·集线器·计算机网络基础·梁辰兴·星型拓扑
车载测试工程师12 小时前
CAPL学习-CAN相关函数-概述
网络协议·学习·capl·canoe
TG:@yunlaoda360 云老大12 小时前
如何在华为云国际站代理商控制台进行SFS Turbo的性能与容量核查?
服务器·网络·数据库·华为云
TG:@yunlaoda360 云老大12 小时前
华为云国际站代理商的CBR主要有什么作用呢?
java·网络·华为云
无锡耐特森13 小时前
ModbusTCP转CC-Link网关解锁直线电机性能上限
网络
老蒋新思维15 小时前
从「流量算法」到「增长算法」:AI智能体如何重构企业增长的内在逻辑
大数据·网络·人工智能·重构·创始人ip·创客匠人·知识变现
老王熬夜敲代码15 小时前
解决IP不够用的问题
linux·网络·笔记
QT 小鲜肉16 小时前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
qq_2546744116 小时前
2025年软考网络规划设计师近期论文考题及范文分享
网络