【接口测试】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())
相关推荐
ACP广源盛1392462567341 分钟前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
嵌入式小企鹅2 小时前
蓝牙学习系列(八):BLE L2CAP 协议详解
网络·学习·蓝牙·ble·协议栈·l2cap
handsomestWei3 小时前
Docker引擎API接入配置
运维·http·docker·容器·api
广州灵眸科技有限公司3 小时前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
byoass3 小时前
csdn_upload_005
网络·安全·云计算
IT WorryFree3 小时前
飞塔防火墙与第三方设备进行IPSEC故障诊断期间,用户可能会观察到以下错误:
linux·服务器·网络
不是书本的小明6 小时前
K8S应用优化方向
网络·容器·kubernetes
~plus~6 小时前
.NET 8 C# 委托与事件实战教程
网络·c#·.net·.net 8·委托与事件·c#进阶
w6100104667 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
GTgiantech7 小时前
灵活拓展网络边界:电口光模块的智慧选型与部署指南
网络