Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

时间:2023-03-09 07:57:08
Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决在介绍之前先将一个小插件;lombok  ,在prefrence里面点击plugins,然后搜索lombok,进行install就可以了

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

首先将pom文件里面的lombok引进来

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
</dependency>
然后,创建一个bean文件,创建一个类,User.java
package com.course.bean;

import lombok.Data;

@Data   //注解,作用就是get set  toString等方法都不用写了
public class User { private String userName;
private String password;
private String name;
private String age;
private String sex;
}

在MyPostmethod里面添加一个方getUserList方法

package com.course.server;

import com.course.bean.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; @RestController
@Api(value = "/",description = "这是我全部的post请求")
@RequestMapping("v1")
public class MyPostMethod { //cookie变量用来装我们的cookies信息
private static Cookie cookie; //用户登陆成功获取到cookies,然后在访问其他接口获取到的列表
@RequestMapping(value = "/login",method = RequestMethod.POST)
@ApiOperation(value = "登陆接口,成功后获取cookies信息",httpMethod = "POST")
public String login(HttpServletResponse response,
@RequestParam(value = "usenName",required = true) String userName, //true代表一定要传
@RequestParam(value = "password",required = true) String password){ if(userName.equals("zhangsan")&&password.equals("123456")){
cookie = new Cookie("login","true");
response.addCookie(cookie);
return "恭喜你登陆成功!";
}
return "用户名或者密码错误!";
} @RequestMapping(value = "/get/userList",method = RequestMethod.POST)
@ApiOperation(value = "获取用户列表",httpMethod = "POST")
public String getUserList(HttpServletRequest request, //没有HttpServletRequest request的话,cookies是带不进来的
@RequestBody User u){
User user;
//获取cookies
Cookie[] cookies =request.getCookies(); //验证cookies是否合法
for(Cookie cookie:cookies){
if(cookie.getName().equals("login")
&&cookie.getValue().equals("true")
&& u.getUserName().equals("zhangsan")
&& u.getPassword().equals("123456")){
user = new User();
user.setName("lisi");
user.setAge("18");
user.setSex("man");
return user.toString(); //在lombok框架里面自动写了toString方法
}
}
return "参数不合法";
}
}

然后,在jmeter里面,填入

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

查看结果:

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

Springboot 6.Springboot 返回cookies信息的验证和post接口开发及常见错误解决

想看cookies信息的话,需要在~/apache-jmeter-4.0/bin/jmeter.properties  中找到 #CookieManager.save.cookies=false,将其改为CookieManager.save.cookies=true