Postman跨域测试

这篇具有很好参考价值的文章主要介绍了Postman跨域测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.Postman

 1.1.1 介绍

1.1.2 安装

1.2 简单参数

1.2.1 原始方式

1.2.2 SpringBoot方式

 1.2.3 参数名不一致

1.3 实体参数

1.3.1 简单实体对象

1.3.2 复杂实体对象

1.4 数组集合参数

1.4.1 数组

1.4.2 集合

1.5 日期参数

1.6 JSON参数

1.7 路径参数


1.Postman

现在工作一般都是 前后端分离

在这种模式下,前端技术人员基于"接口文档",开发前端程序;后端技术人员也基于"接口文档",开发后端程序。

由于前后端分离,对我们后端技术人员来讲,在开发过程中,是没有前端页面的,那我们怎么测试自己所开发的程序呢?

方式1:像之前SpringBoot入门案例中一样,直接使用浏览器。在浏览器中输入地址,测试后端程序。

- 弊端:在浏览器地址栏中输入地址这种方式都是GET请求,如何我们要用到POST请求怎么办呢?
  - 要解决POST请求,需要程序员自己编写前端代码(比较麻烦)

方式2:使用专业的接口测试工具(课程中我们使用Postman工具)

 1.1.1 介绍

Postman跨域测试,postman,测试工具

  • Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。
  •  Postman原是Chrome浏览器的插件,可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求
  • 使用Postman还可以在发起请求时,携带一些请求参数、请求头等信息

- 作用:常用于进行接口测试

1.1.2 安装

官网下载

Postman跨域测试,postman,测试工具

无需升级

Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

界面介绍:Postman跨域测试,postman,测试工具

如果我们需要将测试的请求信息保存下来,就需要创建一个postman的账号,然后登录之后才可以。 很鸡肋。。

Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

登录完成之后,可以创建工作空间:Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

创建请求:

Postman跨域测试,postman,测试工具

点击"Save",保存当前请求 Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

1.2 简单参数

简单参数:在向服务器发起请求时,向服务器传递的是一些普通的请求数据。

Postman跨域测试,postman,测试工具

那么在后端程序中,如何接收传递过来的普通参数数据呢?

网上说一般两种方式:

  1. 原始方式

  2. SpringBoot方式

1.2.1 原始方式

在原始的Web程序当中,需要通过Servlet中提供的API:HttpServletRequest(请求对象),获取请求的相关信息。比如获取请求参数:

Tomcat接收到http请求时:把请求的相关信息封装到HttpServletRequest对象中

在Controller中,我们要想获取Request对象,可以直接在方法的形参中声明 HttpServletRequest 对象。然后就可以通过该对象来获取请求信息:

//根据指定的参数名获取请求参数的数据值
String  request.getParameter("参数名")
@RestController
public class RequestController {
    //原始方式
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request){
        // http://localhost:8080/simpleParam?name=Tom&age=10
        // 请求参数: name=Tom&age=10   (有2个请求参数)
        // 第1个请求参数: name=Tom   参数名:name,参数值:Tom
        // 第2个请求参数: age=10     参数名:age , 参数值:10

        String name = request.getParameter("name");//name就是请求参数名
        String ageStr = request.getParameter("age");//age就是请求参数名

        int age = Integer.parseInt(ageStr);//需要手动进行类型转换
        System.out.println(name+"  :  "+age);
        return "OK";
    }
}

但开发中基本没使用到,鸡肋

1.2.2 SpringBoot方式

在Springboot的环境中,对原始的API进行了封装,接收参数的形式更加简单。 如果是简单参数,参数名与形参变量名相同,定义同名的形参即可接收参数。

@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=10
    // 第1个请求参数: name=Tom   参数名:name,参数值:Tom
    // 第2个请求参数: age=10     参数名:age , 参数值:10
    
    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(String name , Integer age ){//形参名和请求参数名保持一致
        System.out.println(name+"  :  "+age);
        return "OK";
    }
}

postman测试( GET 请求):Postman跨域测试,postman,测试工具postman测试( POST请求 ):Postman跨域测试,postman,测试工具

结论:不论是GET请求还是POST请求,对于简单参数来讲,只要保证==请求参数名和Controller方法中的形参名保持一致==,就可以获取到请求参数中的数据值。

 1.2.3 参数名不一致

如果方法形参名称与请求参数名称不一致,controller方法中的形参还能接收到请求参数值吗?

@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=20
    // 请求参数名:name

    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(String username , Integer age ){//请求参数名和形参名不相同
        System.out.println(username+"  :  "+age);
        return "OK";
    }
}

答案:运行没有报错。 controller方法中的username值为:null,age值为20

结论:对于简单参数来讲,请求参数名和controller方法中的形参名不一致时,无法接收到请求数据

那么如果我们开发中,遇到了这种请求参数名和controller方法中的形参名不相同,怎么办?

解决方案:可以使用Spring提供的@RequestParam注解完成映射

在方法形参前面加上 @RequestParam 然后通过value属性执行请求参数名,从而完成映射。代码如下:

@RestController
public class RequestController {
    // http://localhost:8080/simpleParam?name=Tom&age=20
    // 请求参数名:name

    //springboot方式
    @RequestMapping("/simpleParam")
    public String simpleParam(@RequestParam("name") String username , Integer age ){
        System.out.println(username+"  :  "+age);
        return "OK";
    }
}

注意事项:

@RequestParam中的required属性默认为true(默认值也是true),代表该请求参数必须传递,如果不传递将报错Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具如果该参数是可选的,可以将required属性设置为false

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name", required = false) String username, Integer age){
System.out.println(username+ ":" + age);
return "OK";
}

1.3 实体参数

在使用简单参数做为数据传递方式时,前端传递了多少个请求参数,后端controller方法中的形参就要书写多少个。如果请求参数比较多,通过上述的方式一个参数一个参数的接收,会比较繁琐。 

此时,我们可以考虑将请求参数封装到一个实体类对象中。 要想完成数据封装,需要遵守如下规则:请求参数名与实体类的属性名相同Postman跨域测试,postman,测试工具

1.3.1 简单实体对象

定义POJO实体类:

public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

Controller方法:

@RestController
public class RequestController {
    //实体参数:简单实体对象
    @RequestMapping("/simplePojo")
    public String simplePojo(User user){
        System.out.println(user);
        return "OK";
    }
}

Postman测试:

- 参数名和实体类属性名一致时Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

  • 参数名和实体类属性名不一致时Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

    1.3.2 复杂实体对象

    复杂实体对象指的是,在实体类中有一个或多个属性,也是实体对象类型的。如下:

    - User类中有一个Address类型的属性(Address是一个实体类)Postman跨域测试,postman,测试工具

    复杂实体对象的封装,需要遵守如下规则:

    请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套实体类属性参数。

    定义POJO实体类:

    Address实体类

    public class Address {
        private String province;
        private String city;
    
        public String getProvince() {
            return province;
        }
    
        public void setProvince(String province) {
            this.province = province;
        }
    
        public String getCity() {
            return city;
        }
    
        public void setCity(String city) {
            this.city = city;
        }
    
        @Override
        public String toString() {
            return "Address{" +
                    "province='" + province + '\'' +
                    ", city='" + city + '\'' +
                    '}';
        }
    }
  • User实体类

    public class User {
        private String name;
        private Integer age;
        private Address address; //地址对象
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Address getAddress() {
            return address;
        }
    
        public void setAddress(Address address) {
            this.address = address;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", address=" + address +
                    '}';
        }
    }

    Controller方法:

    @RestController
    public class RequestController {
        //实体参数:复杂实体对象
        @RequestMapping("/complexPojo")
        public String complexPojo(User user){
            System.out.println(user);
            return "OK";
        }
    }

    Postman测试: Postman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

    1.4 数组集合参数

    数组集合参数的使用场景:在HTML的表单中,有一个表单项是支持多选的(复选框),可以提交选择的多个值。Postman跨域测试,postman,测试工具多个值是怎么提交的呢?其实多个值也是一个一个的提交。Postman跨域测试,postman,测试工具

    后端程序接收上述多个值的方式有两种:

  • 数组

  • 集合

1.4.1 数组

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数Postman跨域测试,postman,测试工具Controller方法:

@RestController
public class RequestController {
    //数组集合参数
    @RequestMapping("/arrayParam")
    public String arrayParam(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }
}

Postman测试:

在前端请求时,有两种传递形式:

方式一: xxxxxxxxxx?hobby=game&hobby=javaPostman跨域测试,postman,测试工具Postman跨域测试,postman,测试工具

方式二:xxxxxxxxxxxxx?hobby=game,javaPostman跨域测试,postman,测试工具

1.4.2 集合

集合参数:请求参数名与形参集合对象名相同且请求参数为多个,@RequestParam 绑定参数关系

默认情况下,请求中参数名相同的多个值,是封装到数组。如果要封装到集合,要使用@RequestParam绑定参数关系

Postman跨域测试,postman,测试工具Controller方法:         

@RestController
public class RequestController {
    //数组集合参数
    @RequestMapping("/listParam")
    public String listParam(@RequestParam List<String> hobby){
        System.out.println(hobby);
        return "OK";
    }
}

Postman测试:

 xxxxxxxxxx?hobby=game&hobby=javaPostman跨域测试,postman,测试工具

1.5 日期参数

因为日期的格式多种多样(如:2022-12-12 10:05:45 、2022/12/12 10:05:45),那么对于日期类型的参数在进行封装的时候,需要通过@DateTimeFormat注解,以及其pattern属性来设置日期的格式。 Postman跨域测试,postman,测试工具

- @DateTimeFormat注解的pattern属性中指定了哪种日期格式,前端的日期参数就必须按照指定的格式传递。
- 后端controller方法中,需要使用Date类型或LocalDateTime类型,来封装传递的参数。

Controller方法:

@RestController
public class RequestController {
    //日期时间参数
   @RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
        System.out.println(updateTime);
        return "OK";
    }
}

Postman测试:Postman跨域测试,postman,测试工具

1.6 JSON参数

  1. Postman在发送请求时,如何传递json格式的请求参数

  2. 在服务端的controller方法中,如何接收json格式的请求参数

Postman发送JSON格式数据:Postman跨域测试,postman,测试工具

服务端Controller方法接收JSON格式数据:

- 传递json格式的参数,在Controller中会使用实体类进行封装。 
- 封装规则:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数。需要使用 @RequestBody标识。

Postman跨域测试,postman,测试工具

- @RequestBody注解:将JSON数据映射到形参的实体类对象中(JSON中的key和实体类中的属性名保持一致)

实体类:Address

- @RequestBody注解:将JSON数据映射到形参的实体类对象中(JSON中的key和实体类中的属性名保持一致)

实体类:Address

实体类:User

public class User {
    private String name;
    private Integer age;
    private Address address;
    
    //省略GET , SET 方法
}    

Controller方法:
 

@RestController
public class RequestController {
    //JSON参数
    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "OK";
    }
}

Postman测试:

Postman跨域测试,postman,测试工具

Postman跨域测试,postman,测试工具

1.7 路径参数

请求参数是放在请求体(POST请求)传递或跟在URL后面通过?key=value的形式传递(GET请求)。

Postman跨域测试,postman,测试工具

在现在的开发中,经常还会直接在请求的URL中传递参数。例如:
http://localhost:8080/user/1        
http://localhost:880/user/1/0

上述的这种传递请求参数的形式呢,我们称之为:路径参数。

后端的controller方法中,如何接收路径参数。

路径参数:

- 前端:通过请求URL直接传递参数
- 后端:使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数

Postman跨域测试,postman,测试工具

Controller方法:

@RestController
public class RequestController {
    //路径参数
    @RequestMapping("/path/{id}")
    public String pathParam(@PathVariable Integer id){
        System.out.println(id);
        return "OK";
    }
}

Postman测试:Postman跨域测试,postman,测试工具

传递多个路径参数:

Postman:

Postman跨域测试,postman,测试工具

@RestController
public class RequestController {
    //路径参数
    @RequestMapping("/path/{id}/{name}")
    public String pathParam2(@PathVariable Integer id, @PathVariable String name){
        System.out.println(id+ " : " +name);
        return "OK";
    }
}

关于响应后续再说文章来源地址https://www.toymoban.com/news/detail-821705.html

到了这里,关于Postman跨域测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 接口测试工具:Postman的使用

    在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能模块的测试。 做为后端开发人员,要求独立开发完成某

    2024年02月02日
    浏览(60)
  • Postman(接口测试工具)使用教程

    😀前言 本片文章是Postman(接口测试工具)使用教程 🏠个人主页:[尘觉主页](https://blog.csdn.net/apple_67445472?type=blog) 🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 在csdn获奖荣誉: 🏆csdn城市之星2名 ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣

    2024年02月06日
    浏览(104)
  • 接口测试工具——Postman使用详解

    目录 Postman简介 Postman主界面 菜单栏 工具栏 请求管理区 环境管理区 请求设计区 发送请求 发送GET请求 Postman发送GET请求 发送表单格式POST请求 发送JSON格式POST请求 发送XML格式POST请求 发送文件上传类型的请求 响应 环境和变量 环境变量设置 环境变量使用 全局变量 测试脚本及

    2024年02月08日
    浏览(57)
  • Jmeter和Postman那个工具更适合做接口测试?_接口测试用postman还是jmeter

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新软件测试全套学习资料》

    2024年04月25日
    浏览(41)
  • 开发工具-网络测试工具 POSTMAN 的脚本使用

    POSTMAN 是网络编程中最常用的接口测试工具之一,能够使用脚本进行连续的自动测试。这里是以本地应用版为基础环境。 参考资料: Postman接口自动化测试 postman 可以在发送请求前使用脚本进行预处理,收到响应后使用脚本进行测试。 脚本的一些测试过程可以使用类似浏览器

    2024年02月13日
    浏览(48)
  • 精通使用postman接口测试工具(全)

    Postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等方法。Postman非常简单易用,可以直接填写URL,header,body等就可以发送一个请求,用来测试api接口非常方便。 Postman的优点 使用简单,无需搭建环境,直接使用,可以快速构

    2024年02月16日
    浏览(55)
  • 接口测试工具:Postman的高级用法!

    Postman 是一款功能强大的 API 开发和测试工具,以下是一些高级用法的详细介绍和操作步骤。 一. 环境和全局变量 环境变量允许你设置特定于环境(如开发、测试、生产)的变量,全局变量则在所有环境中都能访问。 操作步骤: 1. 转到左侧的侧边栏,点击\\\"Environments\\\"。 2. 点击

    2024年02月03日
    浏览(75)
  • 接口测试工具:Postman的高级用法

    Postman 是一款功能强大的 API 开发和测试工具,以下是一些高级用法的详细介绍和操作步骤。 【文末有配套视频教程和免费的资料文档领取】 环境变量允许你设置特定于环境(如开发、测试、生产)的变量,全局变量则在所有环境中都能访问。 操作步骤: 1. 转到左侧的侧边

    2024年02月02日
    浏览(64)
  • postman接口测试工具的常规使用

    postman接口测试工具简介与安装 Postman简介: Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 它提供功能强大的Web APIHTTP请求调试。它能够发送任何类型的HTTP请求(GET,HEAD,POST,PUT..),附带任何数量的参数+headers。 Postman功能: 主要用于模拟网络请求包 快

    2024年02月13日
    浏览(44)
  • 接口测试工具——Postman测试工具 & Swagger接口测试+SpringBoot整合 & JMeter高并发测试工具

    头部携带token 类型选择JSON https://apifox.com/ swagger2,较多 swagger3, Knife4j的前身是swagger-bootstrap=ui,前身swagger–bootstrap-ui是一个纯swagger–ui的ui皮肤项目 https://doc.xiaominfo.com/docs/quick-start 底层就是swagger 序号 注解 作用 1 @Api(tags = “图书的api接口类”) 左侧名字 2 @ApiOperation(“findPa

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包