目录
[1. 使用Servlet原生方法获取Header](#1. 使用Servlet原生方法获取Header)
[2. 使用Spring注解获取Header](#2. 使用Spring注解获取Header)
1. 使用Servlet原生方法获取Header
.java文件内容如下:
java
package com.example.demo.controller;
import com.example.demo.Person;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@RequestMapping("/Para")
@RestController
public class ParaController {
@RequestMapping("/getHeader")
public String getHeader(HttpServletRequest request){
String userAgent = request.getHeader("User-Agent");
return "userAgent: "+userAgent;
}
}
运行启动浏览器,页面如下:
2. 使用Spring注解获取Header
可以使用Spring 提供的注解@RequestHeader获取HTTP请求中的header;
.java文件内容如下:
java
package com.example.demo.controller;
import com.example.demo.Person;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@RequestMapping("/Para")
@RestController
public class ParaController {
@RequestMapping("/getHeader2")
public String getHeader(@RequestHeader("User-Agent") String userAgent){
return "userAgent: "+userAgent;
}
}
运行启动后,使用浏览器访问对应URL:
可以使用Fiddler抓包,查看HTTP请求信息:
可见二者对应;
注:1.注意:@RequestHeader注解的参数需与HTTP请求中的header的键名一致:
如现将后端的参数名改为userAgent而非User-Agent,
java
@RequestMapping("/getHeader2")
public String getHeader(@RequestHeader("userAgent") String userAgent){
return "userAgent: "+userAgent;
}
重新启动运行:
可见访问错误;