"Missing request header " 生产环境中的 Spring 引导控制器中的异常,而不是在本地服务器上



我在生产环境中遇到以下错误,但应用程序在本地系统上工作。

"timestamp":"2019-04-02T10:10:26.362+0000","status":400,"error":"Bad Request","message":"Missing request header " on......

我在下面传递来自浏览器的请求标头:

LIB_AUTH_TOKEN: admin@gmail.com:admin

 @RestController
    public class HelloController {
    @RequestMapping(value = "/login")
    public String hello(@RequestHeader(value="LIB_AUTH_TOKEN") String token){
    System.out.println(token);
        }
    }
在你的

请求中包含HttpServletResponse。这将在运行时设置标头。例如:

@RequestMapping(value = "/login")
    public String hello(@RequestHeader(value="LIB_AUTH_TOKEN") String token, HttpServletResponse aResponse)

正在执行:

curl -i -H "LIB_AUTH_TOKEN: test123" -X GET http://localhost:8080/login

这里在 POST 和 GET 上工作正常,只需添加一个响应:

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {

    @RequestMapping(value = "/login")
    public String hello(@RequestHeader(value="LIB_AUTH_TOKEN") String token){
        System.out.println(token);
        return "hi";
    }
}

更新

指定 HTTP 方法:

import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String hello(@RequestHeader(value="LIB_AUTH_TOKEN") String token){
        System.out.println(token);
        return "hi";
    }
}

我遇到了类似的问题,但就我而言,我希望它是可选的。问题是 @RequestHeader 的 require 属性默认为(我假设默认情况下它是假的(

希望这会节省某人的时间!

最新更新