0

我有适用于 Android、iOS、WinPhone 8 和 BlackBerry 的 RESTful Web 服务和移动客户端(应用程序)。与服务器的交互是通过向服务器发送带参数的http请求来实现的。我想知道我能否以某种方式确定发送此请求的操作系统类型(通过 http 内容或其他方式)?我知道我可以将特定字段作为参数添加到请求中,但我不喜欢这样的解决方案。我知道有一种方法可以通过移动浏览器确定操作系统类型。可能类似的想法可以用于我的移动应用程序或每个移动操作系统向 http 请求或其他任何内容添加一些特定信息。提前致谢!

4

2 回答 2

1

这取决于您用于请求的 HTTP 包。例如,在 Android 上,您可能正在使用 Apache 并且具有以下默认用户代理:

"Apache-HttpClient/UNAVAILABLE..."

您也可以检查其他平台以查看其默认用户代理。

但我个人认为这是一个糟糕的解决方案。最好是手动设置每个设备的用户代理,(或向请求添加另一个参数,尽管您似乎不喜欢它:)

顺便说一句 - 忽略移动浏览器用户代理上的答案,因为它们与您的情况无关。

于 2013-05-16T19:00:46.703 回答
0

查看 HTTP 标头中的用户代理。引用维基百科:

该字符串的组成部分如下:

  • Mozilla/5.0:以前用于表示与 Mozilla 渲染引擎的兼容性
  • (iPad;U;CPU OS 3_2_1 like Mac OS X;en-us):运行浏览器的系统的详细信息
  • AppleWebKit/531.21.10:浏览器使用的平台
  • (KHTML,如 Gecko):浏览器平台详细信息
  • Mobile/7B405:浏览器使用它来指示可直接在浏览器中或通过第三方获得的特定增强功能。这方面的一个例子是 Microsoft Live Meeting,它注册了一个扩展,以便 Live Meeting 服务知道该软件是否已安装,这意味着它可以为加入会议提供简化的体验。
于 2013-05-16T18:46:26.690 回答