1. 程式人生 > >開發帶cookies資訊才能訪問的get介面

開發帶cookies資訊才能訪問的get介面

開發帶cookies資訊才能訪問的get介面

一、在com.course.server包MyGetMethod類下,程式碼如下

package com.course.server;

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;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

//@RestController表示我是需要被掃描的類
@RestController
@Api(value = "/",description = "這是我全部的get方法")

public class MyGetMethod {

    //設定訪問路徑和請求方法
    @RequestMapping(value = "/getCookies",method = RequestMethod.GET)
    //HttpServerletRequest 裝請求資訊的類
    //HttpServerletResponse  裝響應資訊的類
    public String getCookies(HttpServletResponse response){

        Cookie cookie = new Cookie("login","true");
        response.addCookie(cookie);
        return "恭喜你獲得cookies成功2";
    }

    /**
     * 要求客戶端攜帶cookies訪問
     * 這是一個需要攜帶cookies資訊才能訪問的get請求
     */
    @RequestMapping(value = "/get/with/cookies",method = RequestMethod.GET)
    //HttpServerletRequest 裝請求資訊的類
    //HttpServerletResponse  裝響應資訊的類
    public String getWithCookies(HttpServletRequest request){
        //獲取cookies
        Cookie[] cookies = request.getCookies();
        //判斷cookies是否為空
        if (Objects.isNull(cookies)){
            return "你必須攜帶cookies資訊來訪問";
        }
        //判斷cookies是否正確
        for (Cookie cookie : cookies){
            if (cookie.getName().equals("login") &&
                    cookie.getValue().equals("true"))
                return "訪問成功";
        }
        return "你必須攜帶正確的cookies資訊來訪問";
     }
    }

執行Application啟動類,然後介面工具裡進行呼叫
一、沒攜帶cookies資訊進行訪問
在這裡插入圖片描述

訪問結果
在這裡插入圖片描述

一、攜帶cookies資訊進行訪問
在這裡插入圖片描述

訪問結果
在這裡插入圖片描述