簡體   English   中英

如何從用戶請求中獲取用戶代理?

[英]How can I get a User-agent from user request?

我必須從用戶請求中獲取User-agent並將自定義信息添加到該User-agent並將其發回。 我有以下 controller:

@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";
    }
}

謝謝你的幫助!

您可以通過以下方式從請求中獲取 header

    @GetMapping("/new_order")
    public String newOrder(@RequestHeader(value = "User-Agent") String userAgent, RedirectAttributes redirectAttributes, Model model) {
           //...
    }

要將標頭發送回客戶端,您可以使用 ResponseEntity

public ResponseEntity<String> newOrder() {
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.set("User-Agent", "updated-Value");

    return ResponseEntity.ok()
      .headers(responseHeaders)
      .body("New order created.");
}

在您的 controller 方法中注入HttpServletRequest 從那里使用HttpServletRequest#getHeader(...)獲取您需要的 header。

    @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";
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM