我正在将 JSON 数据从 Android 和 iPhone 应用程序发送到我的 web2py 应用程序。
我还编写了一个“m”页面,可从 Android 和 iPhone 平台访问,该平台也进行相同的 JSON 调用。
我了解如何使用 web2py 实用程序 request.user_agent()
确定请求是来自 Android 还是 iOS。
我在 http_user_agent
中观察到这些签名:
"Bundle%20name/1.400.130508 CFNetwork/609.1.4 Darwin/13.0.0" (iOS app)
"Apache-HttpClient/UNAVAILABLE (java 1.4)" (android app)
是否有一些 python 模块或全面的正则表达式可用于确定调用是来自电话应用程序还是来自浏览器?
最佳答案
这很难,因为正如一些评论所指出的,应用程序开发者可以将用户代理字符串设置为他们想要的任何内容。或者根本不设置它,在这种情况下,字符串将是一些默认文本,例如您帖子中的 Apache-HttpClient/UNAVAILABLE (java 1.4)
。
关于这个主题有很多类似的问题,我发现这个问题特别有用: Parsing HTTP User-Agent string
这给我们带来了一个可能的补救方法,形式是 httpagentparser
python 包:
https://pypi.python.org/pypi/httpagentparser/
关于android - 确定 http 请求是来自手机应用还是浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976873/