本文是Springboot+post請求接口的生成,包含了帶cookie 和參數發送post請求。新增lombok框架,lombok的使用可以不用在類中添加成員變量的get/set方法。框架自帶了相關方法。如不需要再添加以下內容
public String getUsename() {
return usename;
}
public void setUsename(String usename) {
this.usename = usename;
}


<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.14</version> </dependency> </dependencies>
java post請求代碼如下
package com.course.server;
import com.course.bean.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jdk.internal.org.objectweb.asm.tree.analysis.Value;
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 {
//這個變量用來裝我們的cookies信息
private static Cookie cookie;
//模擬場景:用戶登錄成功獲取到cookies,然后訪問其他接口獲取到列表
/**
* 模擬用戶登錄場景
* @param response
* @param userName
* @param password
* @return
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ApiOperation(value = "登錄接口,成功登錄后獲取cookies", httpMethod = "POST")
public String login(HttpServletResponse response,
@RequestParam(value = "username", required = true) String userName,
// @RequestParam(value = "username1",required = true)String userName,
// @RequestParam傳遞的參數格式是param格式
// username1和前端傳遞的參數一致,
//String userName,可以和前端不一致
@RequestParam(value = "password", required = true) String password) {
if (userName.equals("zhangshan") && password.equals("111111")) {
cookie = new Cookie("login", "true");
response.addCookie(cookie);
return "恭喜你登錄成功";
} else
return "用戶名或密碼錯誤";
}
/**
* 攜帶cookie的指定用戶獲取用戶列表信息
* @param request
* @param user
* @return
*/
@RequestMapping(value = "/getUserList", method = RequestMethod.POST)
@ApiOperation(value = "獲取用戶列表", httpMethod = "POST")
public String getUserList(HttpServletRequest request, @RequestBody User user) {
//必須寫上HttpServletRequest reques,或者cookie 值無法帶上cookie值 @RequestBody需要傳遞的參數格式應該是json格式
//獲取cookies
User user1 = new User();
Cookie[] cookies = request.getCookies();//獲取cookie值
for (Cookie cookie : cookies) {
if (cookie.getName() .equals("login" )&& cookie.getValue().equals("true") &&
user.getName().equals("zhangshan") && user.getPassword().equals("111111")) {
user1.setUsename("lisi");
user1.setAge("18");
return user1.toString();
}
}
return "參數不合法";
}
}
User類(用戶列表中返回的信息)
package com.course.bean;
import lombok.Data;
@Data
public class User {
private String usename;
private String password;
private String name;
private String age;
//以下內容 因為引入了lombox框架而不需要再添加成員變量的get/set方法。
// public String getUsename() {
// return usename;
// }
//
// public void setUsename(String usename) {
// this.usename = usename;
// }
//
// public String getPassword() {
// return password;
// }
//
// public void setPassword(String password) {
// this.password = password;
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
//
// public String getAge() {
// return age;
// }
//
// public void setAge(String age) {
// this.age = age;
// }
}
main入口
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan("com.course") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
