Как я могу получить User-agent по запросу пользователя? - PullRequest
0 голосов
/ 23 сентября 2019

Мне нужно получить 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";
    }
}

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 23 сентября 2019

Вы можете получить заголовок из запроса следующим образом

    @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.");
}
0 голосов
/ 23 сентября 2019

Введите 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";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...