【接口测试】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())
相关推荐
不可能的是18 小时前
前端 SSE 流式请求三种实现方案全解析
前端·http
Jony_2 天前
高可用移动网络连接
网络协议
chilix3 天前
Linux 跨网段路由转发配置
网络协议
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅4 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
gihigo19984 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
2501_946205524 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel4 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)5 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
~远在太平洋~5 天前
Debian系统如何删除多余的kernel
linux·网络·debian