目录

一、postman简介

1、postman介绍

2、postman特点

3、postman下载与安装

(1)下载

(2)安装

4、postman注册登录

5、postman卸载

二、postman工具初识

1、界面导航说明

2、发送第一个请求

(1)创建一个工程目录

(2)创建collection集合

(3)创建一个接口请求

(4)拼装一个接口请求参数

(5)发送请求

三、接口测试流程

1、接口测试分类

(1)测试外部接口

(2)测试内部接口

2、接口测试重点

3、接口测试流程

四、执行接口测试

1、postman元素含义

(1)请求

(2)响应

(3)调试

2、实例演示

(1)获取鉴权码access token接口

(2)获取公众号已创建的标签接口

(3)创建标签接口

(4)文件上传接口

(5)删除标签接口

(6)编辑标签接口

五、接口关联

1、JSON提取器

(1)取值并设置全局变量

(2)使用全局变量

2、正则表达式提取器

六、环境变量和全局变量

1、环境变量

(1)设置环境变量

(2)修改请求ip地址

(3)切换环境进行测试

2、全局变量

七、动态参数

1、系统自带的动态参数

2、自定义动态参数

八、Postman业务闭环用例

1、实例介绍

2、效果图展示

(1)获取鉴权码

(2)新建标签

(3)编辑标签

(4)查询标签

(5)删除标签

九、断言

1、断言定义

2、常见断言

3、八种断言写法

4、常用断言应用

(1)Status code:Code is 200

(2)Response body:Contains string

5、断言随机数

十、postman批量运行测试用例

十一、postman的参数化(CSV、JSON)

1、适用场景

2、接口信息

3、接口用例设计

4、数据驱动实现(参数化)

(1)data.csv文件设置

(2)data.json文件设置

(3)接口传参设置

(4)批量执行用例

(5)执行结果

十二、Cookie鉴权

1、cookie定义

2、cookie查找

3、cookie分类

(1)会话Cookie

(2)持久Cookie

4、Cookie的鉴权原理

5、Postman实现Cookie鉴权

十三、Mock测试

1、Mock定义

2、Mock目的

3、Mock意义

4、Mock应用场景

5、Mock服务

6、Postman创建Mock服务

7、Postman访问Mock服务

(1)GET请求Mock示例

(2)POST请求Mock示例

十四、处理加/解密接口

1、市面上加密技术

2、案例应用

(1)新建用户接口

(2)用户名密码进行加密

(3)发起请求

十五、Newman工具介绍

 1、工具安装

(1)安装Node.js

(2)安装newman

newman安装报错

(3)安装newman-reporter-html

2、导出postman案例脚本

(1)接口案例导出

(2)环境变量导出

(3)全局变量导出

(4)导出结果

3、newman执行测试

(1)newman参数设置

(2)newman启动测试

(3)newman生成测试报告

面试题


一、postman简介

1、postman介绍

postman是一个接口测试工具,在做接口测试的时候,postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。

它主要是用来模拟各种HTTP请求的(如:get/post/delete/put…等等),postman与浏览器的区别在于有的浏览器不能输出json格式,而postman可以更直观看到接口返回的结果。

2、postman特点

  • 简单易用的图形化用户界面
  • 支持保存接口请求的历史记录
  • 使用测试集合Collection可以更有效的管理组织接口
  • 支持团队之间同步接口数据
  • 做接口功能性的测试

3、postman下载与安装

(1)下载

直接在官网下载即可

Download Postman | Get Started for Free

(2)安装

双击打开安装包直接进行安装

4、postman注册登录

刚打开时,需要注册新用户,点击【Create Acount】进行注册

输入邮箱、用户名、密码,点击注册

如图所示,即登录成功

5、postman卸载

postman如果需要卸载的话,右键图标打开文件所在位置,退回到AppData文件夹,删除local、Roaming文件夹下的postman文件夹即可

二、postman工具初识

1、界面导航说明

由于界面纯英文显示,第一次接触postman的小伙伴可能不太熟悉,这里以主界面的图做注解,来说明下各个元素的含义(后面会详细介绍到)

2、发送第一个请求

第一次使用postman时,这里以一个百度翻译接口为例:发起一个get类型的请求

(1)创建一个工程目录

注意:如果没有特别的要求,只需要创建一次即可

(2)创建collection集合

collection是postman管理接口请求的基本单位,首先就是把他创建出来,我们在自己的工程下,点击【+】号,再点击【Blank collection】创建空集合后,可进行重命名

(3)创建一个接口请求

在新建的空集合下右键点击【Add request】,新建一个接口请求,即接口用例,新建后也可重命名

(4)拼装一个接口请求参数

对于一个接口请求来说,需要三部分内容:

入参示例:
q=apple
from=auto
to=zh
appid=20190630000313415
salt=888888
sign=a9adc2d687fbacecc3b5059b9ccedc95

(5)发送请求

点击url地址栏后面的send按钮发送请求

返回结果如下:

{
    "from": "en",
    "to": "zh",
    "trans_result": [
        {
            "src": "apple",
            "dst": "苹果"
        }
    ]
}

三、接口测试流程

1、接口测试分类

(1)测试外部接口

是被测系统和外部系统之间的接口(一般只需要正常调用即可)

(2)测试内部接口

是被测系统内部各个模块之间的接口

  • 内部接口提供给内部系统使用(一般只需要正常调用即可)
  • 内部接口提供给外部系统使用(测试必须非常全面)

2、接口测试重点

测试接口参数传递的正确性,接口功能的正确性以及各种异常情况下系统的容错能力、接口的权限控制、接口的兼容性

3、接口测试流程

(1)拿到api接口文档(可以找开发拿,也可以抓包自己创建,也可以录制后自己创建),熟悉接口文档业务、接口地址、接口鉴权(鉴定是否有访问接口的权限)方式、接口入参、出参、是否有完善的错误码机制

(2)编写接口测试用例

正例:输入正常的入参,接口能够正常返回(get/post)

反例:

  • 鉴权反例:必填、错误的鉴权码、鉴权码已过期......
  • 参数反例:必填,参数类型异常、参数长度异常......
  • 错误码反例
  • 其他场景:黑名单、接口调用次数限制、分页场景
  • 接口的兼容性:一个接口是否能兼容多个版本的前端

(3)使用接口测试工具postman/jmeter/apifox执行接口测试,提供bug以及bug验证

(4)Postman+Newman+Jenkins+git实现持续集成并且生成报告

四、执行接口测试

1、postman元素含义

以上图为例,对各个元素进行拆解

(1)请求

请求有四大块组成:请求方式、请求路径、请求头、请求参数

请求方式和请求路径这里就不多做解释了

Params:get请求传参

Authorization:鉴权

Headers:请求头

  • accept:客户端接收的数据类型
  • content-type:客户端发送给服务器的数据类型
  • user-agent:客户端的类型
  • xmlhttprequest:异步请求
  • ......

Body:post请求传参

  • none:没有参数
  • from-data:文件上传以及键值对(两种请求,可选)
  • x-www-form-urlencoded:表单请求(键值对)
  • raw:使用原始数据格式请求(JSON、XML、HTML、Text、JavaScript)
  • binary:二进制文件上传
  • GraphQL:不怎么使用,可忽略

Pre-request Script:请求之前的脚本

Tests:请求之后的脚本

Settings:设置

Cookies:Postman用于自动管理Cookie的功能

(2)响应

Body:返回的值

  • Pretty:以不同的格式查看返回结果
  • Raw:以文本格式查看返回结果
  • Preview:以网页格式查看返回结果

Cookies:响应的Cookie

Headers:响应头

Test Results:断言的结果

(3)调试

Console:控制台,用于调试,位于界面左下角

2、实例演示

这里的实例在后续的内容描述中都会用到

(1)获取鉴权码access token接口

grant_type=client_credential
appid=wx74a8627810cfa308
secret=e40a02f9d79a8097df497e6aaf93ab80

如图所示,点击send发起请求,下边为响应,即接口返回了一个token

(2)获取公众号已创建的标签接口

access_token=ACCESS_TOKEN

参数【access_token】取值需要从“获取鉴权码access token接口”中接口返回的值获取

注意:因为接口2用到了接口1返回的结果,因此存在接口关联的情况,也就是需要把接口1的值提取出来放在接口2的参数值中,具体内容见第五章

(3)创建标签接口

json格式
{"tag":{"name":"陕西西安"}}

(4)文件上传接口

  • 请求方式:POST
  • 请求路径:https:///api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={{token}}
  • 请求参数:
media=文件附件

返回格式如下,这里可以根据返回地址查看浏览器中上传的图片

{"url":"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/GXkibaAlg9h9tgVicG4UrkHUyDAvgicOPfbGkTcytsfQUsgfgh2L9jAEN8X8qEnvjOOcKRgsxoEMwH4FPWPY4y0nw\/0"}

(5)删除标签接口

{"tag":{"id":15475}}

这里的id取值也可以直接使用全局变量【tag_id】,删除新建的标签,使接口形成一个业务闭环案例

(6)编辑标签接口

{
    "tag": {
        "id": {{tag_id}},
        "name": "陕西西安{{$timestamp}}"
    }
}

这里的id直接使用全局变量【tag_id】,要修改标签信息,则需要先获取到目标标签的id,这里的目标标签则是新建的标签,因此在新建标签接口请求后获取其返回结果的id作为全局变量,在编辑标签接口中调用即可

五、接口关联

1、JSON提取器

(1)取值并设置全局变量

首先获取到目标接口中的token值,将其设置为全局变量,以便别的接口能调用到该值

注意:接口返回值设置为全局变量时可以点击右边的【Set a global variable】按钮功能直接调用方法

//打印用于调试
console.log(responseBody);
//把返回的字符串转成JSON对象
var jsobj = JSON.parse(responseBody);
//取值并设置为全局变量
pm.globals.set("token", jsobj.access_token);
//console.log(jsobj.access_token);

(2)使用全局变量

在需要的接口里面通过{{token}}取得全局变量的值

{{token}}

2、正则表达式提取器

根据正则表达式获取到接口中的token值,将其设置为全局变量,其他步骤同方式1一致

//正则表达式提取器
console.log(responseBody);
//通过正则表达式匹配值(match匹配)
var datas = responseBody.match(new RegExp('"access_token":"(.*?)"'));
console.log(datas[1]);
//设置成全局变量
pm.globals.set("token",datas[1] );

六、环境变量和全局变量

全局变量:在所有的接口里面都可以访问的变量

环境变量:在当前环境里面可以访问的变量

1、环境变量

(1)设置环境变量

(2)修改请求ip地址

把所有请求中的ip地址改成获取环境变量的方式,如下图所示

{{ip}}

(3)切换环境进行测试

在postman右上角选择不同的环境即可,这里环境可选项就是在【Environments】中新建的环境

注意:不同环境中的变量必须是一致的,变量值不一致

2、全局变量

【Environments】中的Globals即为全局变量统称,点击它就会看到全局变量了,具体构建全局变量可参考第五章

七、动态参数

1、系统自带的动态参数

{{$timestamp}}          //动态时间戳

{{$randomInt}}          //动态0-100的整型

{{$guid}}               //动态的guid字符串

2、自定义动态参数

//自定义动态参数生成随机数
var times = Date.now();
pm.globals.set("times", times);

//定时5秒再执行
const sleep = (milliseconds) => {
    const start = Date.now();
    while(Date.now() <= start + milliseconds) {}
};
sleep(5000);

八、Postman业务闭环用例

我们以第四章的实例来做讲解

一个完整的接口业务闭环案例如下步骤:

  1. 获取鉴权码
  2. 新建标签
  3. 编辑标签
  4. 查询标签
  5. 删除标签

1、实例介绍

拿到鉴权码,新建标签后,获取新建的标签id,根据该id对标签进行修改,修改后全量查询标签,接着再根据id删除该标签,这样就形成了一个完整的闭环

2、效果图展示

各个接口详图展示如下,仅作参考(与第四章的实例构建差别不大,这里不清晰的话可以返回上面根据请求路径自己创建)

(1)获取鉴权码

(2)新建标签

(3)编辑标签

(4)查询标签

(5)删除标签

九、断言

1、断言定义

所谓断言,就是对返回的响应结果,做正误判断,如果结果符合设定的预期则判定为pass,如果结果与预期不符则判定为fail。

断言主要是在Test操作框内进行设置,使用JavaScript语言编写,断言的结果在下方响应内容的TestResult内。

2、常见断言

  • Status code:Code is 200----------------------------------检查返回的状态码是否为200
  • Response body:Contains string-------------------------检查返回的数据中包括有指定的字符串
  • Response body:JSON value check---------------------检查json中的其中一个字段的值
  • Response body:Is equal to a string---------------------检查返回的值等于一个指定的字符串
  • Response headers:Content-Type header check----检查是否包含响应头Content-Type
  • Response time id less than 200ms----------------------检查请求耗时小于200ms
  • Status code:Successful POST request-----------------检查返回的状态码是否在数组中
  • Status code:Code name has string----------------------检查状态信息是指定的字符串

有背景底色的为常用断言

3、八种断言写法

//--------------------断言---获取鉴权码access token接口---
pm.test("检查返回状态码为200", function () {
    pm.response.to.have.status(200);
});

pm.test("检查返回的结果中包含指令字符串", function () {
    pm.expect(pm.response.text()).to.include("access_token");
});

pm.test("检查json中其中一个字段的值", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.字段名).to.eql(7200);
});

//-----------在编辑标签接口中加的断言-----------------------------
pm.test("检查返回的值等于一个指定的字符串", function () {
    pm.response.to.have.body('{"errcode":0,"errmsg":"ok"}');
});
//--------------------------------------------------------------


pm.test("检查是否包含响应头Content-Type", function () {
    pm.response.to.have.header("Content-Type");
});

pm.test("检查请求耗时小于300ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(300);
});

pm.test("检查返回的状态码是否在数组中", function () {
    pm.expect(pm.response.code).to.be.oneOf([200, 202]);
});

pm.test("检查状态信息是指定的字符串", function () {
    pm.response.to.have.status("OK");
});

4、常用断言应用

(1)Status code:Code is 200

在创建标签接口中加检查返回的状态码的断言,断言即在请求之后,如下图所示:

//状态断言
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

(2)Response body:Contains string

检查返回的数据中是否包含指定的字符串,创建标签接口返回的结果中包含id和name,其中name为字符串格式,因此我们可以给该接口加断言

//检查返回结果是否包含指定字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("陕西西安"+pm.globals.get("times"));
});

注意:这里获取到的随机数【times】是因为设置了前置脚本-自定义动态参数,因此断言中可以获取到接口返回结果中文后的随机数

//自定义动态参数生成随机数
var times = Date.now();
pm.globals.set("times", times);

5、断言随机数

一旦需要断言随机数,那么必须使用自定义动态参数

注意事项:

  • 在断言中不能使用【{{}}】的方式取全局变量,要通过【pm.globals.get("times")】方式获取全局变量
  • 在断言中取数据文件的值,不能使用【pm.globals.get("times")】方式,需要使用【文件名.文件字段名】

十、postman批量运行测试用例

在自己创建的collection集合右上角点击【Run collection】,打开批量执行窗口,设置执行次数以及间隔时长,点击执行

十一、postman的参数化(CSV、JSON)

1、适用场景

当一个接口需要测试多个场景用例:正向用例、反向异常用例,可以使用数据驱动的形式实现

2、接口信息

以【获取鉴权码access token接口】为例,该接口有三个必传参数:grant_type、appid、secret

3、接口用例设计

正向用例反向用例
grant_type、appid、secret必填grant_type无值,appid、secret必填
grant_type、secret必填,appid无值
grant_type、appid必填,secret无值

4、数据驱动实现(参数化)

(1)data.csv文件设置

grant_typeappidsecret
client_credentialwx74a8627810cfa308e40a02f9d79a8097df497e6aaf93ab80
wx74a8627810cfa308e40a02f9d79a8097df497e6aaf93ab80
client_credentiale40a02f9d79a8097df497e6aaf93ab80
client_credentialwx74a8627810cfa308

(2)data.json文件设置

[
	{"grant_type":"client_credential","appid":"wx74a8627810cfa308","secret":"e40a02f9d79a8097df497e6aaf93ab80"},
	{"grant_type":"","appid":"wx74a8627810cfa308","secret":"e40a02f9d79a8097df497e6aaf93ab80"},
	{"grant_type":"client_credential","appid":"","secret":"e40a02f9d79a8097df497e6aaf93ab80"},
	{"grant_type":"client_credential","appid":"wx74a8627810cfa308","secret":""},
]

(3)接口传参设置

变量名与文件中的变量名一致,变量值直接调用全局变量(文件中的变量都默认为全局变量)

(4)批量执行用例

在自己创建的collection集合右上角点击【Run collection】,打开批量执行窗口,选择csv或者json文件,选择后会自动带入执行次数,再勾选要测试的接口,点击执行

(5)执行结果

正例测试通过,反例发送请求时报错

十二、Cookie鉴权

1、cookie定义

存储在客户端的一小段文本信息,格式为键值对的形式

2、cookie查找

以下面的网页为例,打开谷歌浏览器,右键点击检查【F12】,查看界面cookie

本站新帖 - phpwind 9.0 - Powered by phpwind

3、cookie分类

(1)会话Cookie

保存在内存,当浏览器关闭之后会自动删除cookie

(2)持久Cookie

保存在磁盘,当浏览器关闭之后不会清除,只有在失效时间到了之后才会清除

注意:Cookie的值是在服务端设置,在客户端存储,可以设置Cookie的失效时间

4、Cookie的鉴权原理

(1)当客户端第一次访问服务器的时候,服务器就会生成Cookie信息,并且通过响应里的Set-Cookie将Cookie值传输给客户端,客户端接收并自动存储Cookie值。

(2)当客户端第二次访问服务器的时候,客户端就会自动读取本地的cookie,然后根据主机IP或者域名添加对应的cookie,从而实现鉴权

5、Postman实现Cookie鉴权

Postman会自动完成cookie鉴权,无需手动完成。

获取cookie以后,postman发请求不用自己手动添加cookie,他会自动帮我们填写cookie在请求头上

十三、Mock测试

1、Mock定义

Mock是一种比较特殊的测试技巧,可以在没有依赖项的情况下进行接口或单元测试,通常情况下,Mock与其他方法的区别是,用于模拟代码依赖对象,并允许设置对应的期望值

2、Mock目的

因项目中任务的不同分工,会出现每个人的任务进度不一样的情况,就会出现模块A开发完成,但其依赖项模块B还未完成,这时候如果进行集成测试时,就会出现两个模块无法有效完成工作。针对这种情况,Mock服务便应运而生。Postman中的Mock服务器可以减轻团队开发中这种不同步的情况。

3、Mock意义

在API开发的前期,构建Mock集合可以帮助团队之间进行清晰有效沟通,并尽快就预期结果达成一致,在实际开发过程中,所有人员可以同步并行工作,减少因相互依赖而导致延期的风险

4、Mock应用场景

  • 前后端联调
  • 调用第三方接口测试错误场景
  • demo演示

5、Mock服务

Mock不是一个真实的服务,仅是一个被伪装成真实服务的假服务,通过Mock,可以测试我们API并检验结果是否正确。

Postman可以创建两种类型的Mock服务

  • 私有Mock:私有Mock服务需要在请求头中添加Postman API key,如X-Api-Key:postman API key
  • 公有Mock:公有Mock服务可以被任何人访问,在使用过程中不需要添加Postman API key

6、Postman创建Mock服务

(1)点击左侧图标【Mock Servers】,点击【Create Mock Server】,在右侧填写相应的Mock服务器参数,并点击【Next】,如下所示

(2)填写Mock服务器的相关信息并点击【Create Mock Server

(3)在创建Mock Server成功后,会出现如下界面

7、Postman访问Mock服务

不需要做任何配置,创建Mock服务后,postman会自动创建集合以及环境变量,直接发送请求即可(切换至Collections,发送请求)

(1)GET请求Mock示例

(2)POST请求Mock示例

十四、处理加/解密接口

1、市面上加密技术

(1)对称式加密:DES,AES,Base64加密

(2)非对称式加密:RSA加密 (BEJSON网址可用)

非对称式加密也叫双钥加密(公钥和私钥【公钥加密,私钥解密】/【私钥加密,公钥解密】)

(3)只加密不解密:MD5,SHA1,SHA3

(4)混合加密(自定义加密方式):使用多种加密方式

(5)接口签名Sign

2、案例应用

这里以一个简单的用户登录接口为例,讲解如何测试加/解密,接口文档中有描述用哪种加密技术(这里是我的本地接口,想要实操的小伙伴可以自己搭建)

(1)新建用户接口

  • 请求方式:POST
  • 请求路径:http://127.0.0.1:8787/dar/user/login
  • 请求参数:user_name、passwd

(2)用户名密码进行加密

在前置脚本中使用Base64位进行加密,分别对入参【user_name和passwd】取值进行加密

//Base64位加密
//把需要加密的值转换成utf-8的编码格式
var us = CryptoJS.enc.Utf8.parse("test01");
var pw = CryptoJS.enc.Utf8.parse("admin123");
//对转换后的值做Base64加密
var bs64_us = CryptoJS.enc.Base64.stringify(us);
var bs64_pw = CryptoJS.enc.Base64.stringify(pw);
//设置为全局变量
pm.globals.set("bs64_us", bs64_us.toString().toUpperCase());
pm.globals.set("bs64_pw", bs64_us.toString().toUpperCase());

(3)发起请求

如图所示,用户登录成功

十五、Newman工具介绍

Newman 是一款基于Node.js开发的,专为 postman 而生的命令行工具,通过命令行执行 

通过 Newman 执行脚本,可以在 Jenkins 上实现 postman 接口测试持续集成,是一种非常简单方便进行接口测试的方法

 1、工具安装

(1)安装Node.js

下载地址:下载 | Node.js 中文网 (nodejs.cn)

下载后一路next ,安装后,打开cmd,输入node -v ,看到输出node的版本信息,即代表安装成功,环境变量设置也正确

注意:安装的时候多等待一会,不要着急点击取消

(2)安装newman

点击【win+R】,输入cmd打开命令行,直接在命令行输入安装命令即可安装

//安装命令
npm install -g newman

验证是否安装成功

//验证命令
newman -v

newman安装报错

安装newman时如果遇到了如下报错,CERT_HAS_EXPIRED是一个由Node.js和npm抛出的错误,表示你正在尝试访问的服务器的SSL证书已经过期

解决办法:

1、清除npm缓存

npm cache clean --force

2、取消ssl验证:
npm config set strict-ssl false
3、再进行安装

(1)正常安装:

npm install -g newman

(2)npm镜像源安装:

npm install -g newman --registry=https://registry.npm.taobao.org

如果上面的步骤还是安装失败的话,再试试更换镜像源

npm config set registry http://registry.cnpmjs.org
npm config set registry http://registry.npm.taobao.org 

(3)安装newman-reporter-html

使用命令安装 html 报告模板,方便查看测试用例执行结果

//安装html报告模板 
npm install -g newman-reporter-html

2、导出postman案例脚本

这里需要导出接口用例、环境变量以及全局变量三部分内容

(1)接口案例导出

(2)环境变量导出

(3)全局变量导出

(4)导出结果

导出文件都为json格式,这里要注意的是,文件命名不要用中文命名

3、newman执行测试

(1)newman参数设置

参数用法
-e– environment 后面跟环境变量文件
-g– global 后面跟全局变量文件
-n– iteration-count 后面跟迭代次数
-d– iteration-data 指定用于迭代的数据源文件
-r– reporters 后面跟数据结果
html将结果生成为html文件,指定生成到具体目录需要配合 --reporter-html-export 文件名 使用

(2)newman启动测试

使用指令newman run xxx.postman_collection.json 即可启动测试,我这里以上边的导出文件做示例,输入指令:

newman run "e:\\newmans\\yongli.json" -e "e:\\newmans\\huanjing.json" -g "e:\\newmans\\quanju.json"

(3)newman生成测试报告

输入指令后生成测试报告【report.html】

newman run "e:\\newmans\\yongli.json" -e "e:\\newmans\\huanjing.json" -g "e:\\newmans\\quanju.json" -r cli,html,json,junit --reporter-html-export "e:\\newmans\\report.html"

面试题

1、GET请求和POST请求的区别是什么?

答:

(1)GET请求一般用于获取数据,POST请求一般用于提交数据

(2)传参的方式不一样

        # GET请求在接口地址里面以【?】的方式传参,多个参数之间用【&】分隔

        # POST是在body当中传参

(3)POST请求比GET请求安全

(4)GET请求只发一个数据报文,POST请求发送两个数据报文

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐