java - Spring Java servlet 返回错误的用户代理

标签 java spring google-chrome firefox servlets

我正在尝试获取有关用户用于调用 API 的浏览器的信息。 我在网上搜索了一下,似乎应该使用请求 header 中的“user-agent”。

代码:

@RequestMapping(value = "/headerTest", method = RequestMethod.GET)
public @ResponseBody DummyAPI dummyApi(
        @RequestHeader ("User-Agent") String userAgent,
        HttpServletRequest request,  HttpServletResponse response)
{

    System.out.println("User-Agent : " + userAgent);

    String browserName = request.getHeader("User-Agent");
    System.out.println("BrowserName : " + browserName);

    return "test";
}

但是,当我测试它时:

Firefox 给我: Mozilla/5.0(Macintosh;Intel Mac OS X 10.9;rv:25.0)Gecko/20100101 Firefox/25.0!

Chrome 给了我: Mozilla/5.0(Macintosh;Intel Mac OS X 10_9_3)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/35.0.1916.153 Safari/537.36!

Safari 给我: Mozilla/5.0(Macintosh;Intel Mac OS X 10_9_3)AppleWebKit/537.76.4(KHTML,如 Gecko)版本/7.0.4 Safari/537.76.4!

这里可能出现什么问题?为什么标题会错误?

提前谢谢您!

最佳答案

标题是正确的,它们或您的应用程序没有任何问题。由于历史原因,它们包含大量数据,并且无法轻松更改以与旧的 Web 应用程序兼容。

来源和更多信息: http://webaim.org/blog/user-agent-string-history/

关于java - Spring Java servlet 返回错误的用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441788/

相关文章:

java - 如何让 GWT 在链接文件夹中找到源代码?

java - 将多个 boolean 数组添加在一起

java - 如何配置 ConfluenceRegistry 以使用不同的 Avro 架构源?

java - Spring Integration Java Config/DSL 中没有方法的服务激活器

java - 导入自己的枚举转换器

javascript - 使用 javascript 将 Canvas 图像上传到 imgur (api v3)

java - @ConditionalOnProperty 默认 bean 当前不工作

java - 在查询方法中使用 @Param 传递 java.util.Date

css - 手动将 css 保存在元素选项卡上,而不是使用 Chrome Workspaces 自动保存?

javascript - 使用 X 关闭 Chrome 应用程序时 onClosed() 不会触发