gpt4 book ai didi

java - 为什么我的 Web 服务为大多数移动浏览器生成 XML 结果而不是 HTML 结果?

转载 作者:行者123 更新时间:2023-11-30 04:54:47 25 4
gpt4 key购买 nike

我有一个静态 Web 服务资源,我已为其定义了 XML 和 HTML 方法。对于桌面浏览器,该服务可以准确地生成 HTML,而对于我编写的 Android 客户端,该服务可以准确地生成 XML。

但是,当涉及到移动浏览器时,该服务会生成 XML,而它应该生成 HTML。

一个方法用注释

@Produces({MediaType.TEXT_HTML})

另一个是

@Produces({MediaType.APPLICATION_XML})

我是否需要查看 Accept header 以外的内容才能获得所需的结果?

更新:从移动浏览器请求中拦截的可接受的媒体类型是:

信息:应用程序/xml

信息:application/xhtml+xml

信息:图像/png

信息:文本/html; q=0.9

信息:文本/纯文本; q=0.8

信息:/; q=0.5

最佳答案

This这篇文章解释了基于 webkit 的浏览器(大多数移动浏览器)如何使用接受 XML 优先于 HTML 的 header 。基于此和this所以问题,最好不要仅仅依赖请求的接受 header ,而是将其与 URL 指定的表示结合起来。

另一个解决方案是通过将质量属性附加到 @Produces 声明来覆盖客户端的 Accept 首选项。如果您使 qs 大于 1:

@Produces({MediaType.TEXT_HTML+";qs=1.1"})

浏览器客户端的首选项将被覆盖。然后,对于有需要的客户端,您必须为客户端上的其他内容类型设置更大的 qs 值。我不知道这种方法是否是好的做法,但这就是我所采用的。

关于java - 为什么我的 Web 服务为大多数移动浏览器生成 XML 结果而不是 HTML 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com