java - 如何从用户请求中获取用户代理?

标签 java spring spring-boot spring-mvc

我必须从用户请求中获取用户代理,并将自定义信息添加到该用户代理并将其发回。 我有以下 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) {
           //...
    }

要将 header 发送回客户端,您可以使用 ResponseEntity

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

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

关于java - 如何从用户请求中获取用户代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057984/

相关文章:

java - OnTouch MotionEvent Action 移动未触发

java - Android X轴加速度计

java - 在@RequestBody 中使用 spring 转换器

java - 如何正确覆盖 Spring 和 Hibernate 的 BasicDataSource

java - 如何更改 Maven 登陆页面

rest - 测试时出错 : found multiple declaration of @BootstrapWith for test class

postgresql - Hibernate @Column注释无法映射到数据库

spring-boot - 如何为Elasticsearchn CRUD操作处理否定的JUNIT测试用例

Java自省(introspection): object to map

java - 在控制台中打印公历