基于Postman进行http的请求和响应

Postman 是一款广泛用于 API 开发、测试和管理的协作平台,它支持多种 API 类型(如 REST、GraphQL、SOAP 等),通过直观的图形界面和强大的功能,帮助开发者简化 API 工作流。

支持多种请求方法

Postman支持多种 HTTP 方法(GET、POST、PUT、DELETE 等),可自定义请求头(Headers)、参数(Params)、请求体(Body,如 JSON、Form-data、x-www-form-urlencoded 等)。

实时响应

Postman能够实时显示响应结果(状态码、响应头、响应体),并支持格式化(如 JSON 自动排版)、搜索和保存,方便快速定位问题。

基于StringBootWeb介绍各种请求方式

简单参数

直接在requestmapping路径的后面加问号,然后书写请求的参数,中间用&表示and

java 复制代码
@RestController
public class RequestController {
    @RequestMapping("/simpledemo")
    //string boot 接受形式
    public String simpledemo(@RequestParam(name="name") String username, Integer age)
    {
        //requestparam注解用于将请求参数名映射到方法形参
        System.out.println(username+":"+age);
        return "OK";
    }

点击发送之后,postman收到响应ok,idea输出sout内容


实体参数

我们介绍一种比较复杂的实体参数,首先我们建立一个user实体类,然后在user里面调用另一个实体类

使用右键生成把getter和setter以及tostring写好

java 复制代码
    @RequestMapping("/complexPoJo")
    public String complexPoJo(User uesr){
        System.out.println(uesr);
        return "OK";
    }

在写响应的时候,我们直接将实体类对象user作为参数就可以了


数组或列表参数

当我们需要传递同一个参数但是传递不同的值的时候,可以使用数组或者列表作为参数传递

java 复制代码
    //数组名和请求的参数名一致
    @RequestMapping("/arrayPoJo")
    public String arrayPoJo(String[] hobby){
        System.out.println(Arrays.toString(hobby));
        return "OK";
    }

    @RequestMapping("/listParam")
    //默认放到数组,如果要用集合需要通过requestparam进行绑定
    public String listParam(@RequestParam List<String> hobby){
        System.out.println(hobby);
        return "OK";
    }

这里需要注意的是参数的名字一定要和postman传的key相同,除此之外,如果要用集合响应参数需要使用@RequestParam


日期参数

当请求参数中包含类似updatetime这种参数,存放着目前的时间,一般为yyyy:MM:dd HH:mm:ss的格式

java 复制代码
    @RequestMapping("/dateParam")
    public String dateParam(@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime)
    {
        System.out.println(updateTime);
        return "OK";
    }

这个时候我们需要使用LocalDateTime来接受参数,并且使用注解@DateTimeFormat去指定时间日期的格式


json参数

在实际的请求和响应通信中,json形式是最常见的形式,因为我们在stringbootweb中使用的 注解@RequestController中封装了**@RequesrBody**这个注解

requestbody注解会将方法返回值直接进行响应,如果返回值是实体对象或者集合的话就会将其转换为json格式进行响应

java 复制代码
    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user)
    {
        System.out.println(user);
        return "OK";
    }

当我们想给服务器请求json格式的参数时,我们可以使用post请求方法

在postman中选择Body部分,填写我们的json参数,注意键对的格式


路径参数

当我们的请求传递的是一个路径参数的时候,我们可以使用斜杠之间大括号的形式来获取参数

java 复制代码
    @RequestMapping("/path/{id}/{name}")
    public String pathParam(@PathVariable Integer id,@PathVariable String name)
    {
        System.out.println(id+":"+name);
        return "OK";
    }

比如上面的代码,我们可以将path路径后面的两个大括号来分别获取id和name两个参数,注意在书写方法名的时候,我们需要在每个形参前面加入注解@PathVariable来指明这个参数为路径参数


在实际开发中,我们经常会使用统一响应参数来处理请求,这样能够大幅度提高前后端交互的效率。

统一响应参数

java 复制代码
public class Result {
    private Integer code ;//1 成功 , 0 失败
    private String msg; //提示信息
    private Object data; //数据 data

    public Result() {
    }
    public Result(Integer code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public Integer getCode() {
        return code;
    }
    public void setCode(Integer code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {
        this.data = data;
    }

    public static Result success(Object data){
        return new Result(1, "success", data);
    }
    public static Result success(){
        return new Result(1, "success", null);
    }
    public static Result error(String msg){
        return new Result(0, msg, null);
    }

    @Override
    public String toString() {
        return "Result{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}

比如这个Result实体类,我们可以用code和msg表示响应是否成功,并用data来响应参数

postman除了能够方便进行http请求之外,还能做到很多如自动化测试的功能,很强大的软件。

相关推荐
BIBI20491 天前
HTTP 请求方法指南:GET, POST, PUT, PATCH, DELETE 区别
网络·网络协议·http
fenglllle1 天前
http trailer 与 http2
http·wireshark·1024程序员节
☆璇1 天前
【Linux】应用层协议HTTP
网络·网络协议·http·1024程序员节
2501_915921432 天前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone
软件测试小仙女2 天前
AI驱动的测试:Cypress的cy.prompt功能实践
自动化测试·软件测试·人工智能·测试工具·cypress·ai测试·测试计划
程序员小远2 天前
Appium+python+unittest搭建UI自动化框架
自动化测试·软件测试·python·测试工具·ui·appium·测试用例
mzhan0172 天前
Linux: network: wireshark:tcp 0.5 秒‘息停’发数据数据图表
网络·测试工具·wireshark
要加油哦~2 天前
前端八股文 | HTTP - 实时通信方式/前后端通信方式
网络·网络协议·http
李昊哲小课2 天前
spring 中 HttpStatus 与 ResponseEntity
spring boot·后端·spring·http·spring cloud·restful