Joh*_*ohn 3 java spring spring-mvc spring-boot
我必须User-agent从用户请求中获取并添加自定义信息User-agent并将其发回。我有以下控制器:
@RequestMapping("/orders")
@Controller
public class MyController {
@GetMapping("/new_order")
public String newOrder(RedirectAttributes redirectAttributes, Model model) {
if (isUserNotAuthorized()) {
return getLoginRedirectPage(redirectAttributes, "/login");
}
model.addAttribute("order", new Order());
// How to retrieve User-agent and add some custom info and return it back to the user?
return "new_order";
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
Far*_*han 12
您可以通过以下方式从请求中获取标头
@GetMapping("/new_order")
public String newOrder(@RequestHeader(value = "User-Agent") String userAgent, RedirectAttributes redirectAttributes, Model model) {
//...
}
Run Code Online (Sandbox Code Playgroud)
要将标头发送回客户端,您可以使用 ResponseEntity
public ResponseEntity<String> newOrder() {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.set("User-Agent", "updated-Value");
return ResponseEntity.ok()
.headers(responseHeaders)
.body("New order created.");
}
Run Code Online (Sandbox Code Playgroud)
注入HttpServletRequest您的控制器方法。从那里使用HttpServletRequest#getHeader(...)获取您需要的标头。
@GetMapping("/new_order")
public String newOrder(RedirectAttributes redirectAttributes, HttpServletRequest request, Model model) {
String userAgent = request.getHeader("User-Agent");
if (isUserNotAuthorized()) {
return getLoginRedirectPage(redirectAttributes, "/login");
}
model.addAttribute("order", new Order());
// How to retrieve User-agent and add some custom info and return it back to the user?
return "new_order";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12541 次 |
| 最近记录: |