我在生产env上遇到错误,但应用程序在本地系统上工作。
"timestamp":"2019-04-02T10:10:26.362+0000","status":400,"error":"Bad Request","message":"Missing request header " on......
我从浏览器传递下面的Request标题:
LIB_AUTH_TOKEN: [email protected]: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";
}
}