android - 确定 http 请求是来自手机应用还是浏览器

标签 android python ios

我正在将 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/

相关文章:

ios - 整个应用程序都使用相同的 UISearchBar?

java - 如何在 Android 偏好设置中使用 DatePicker

android - 使用自定义设置轻松构建相同的应用程序Android Studio

Android ListView 项目点击不起作用

python - 如何每隔一段时间发送文件?

python - 引发类型错误(类型错误 : object of type <class 'numpy.float64' > cannot be safely interpreted as an integer)

android - 如何在未经身份验证的情况下从 Google Play 商店请求应用信息

python - 使用 Django Rest Framework 和 IOS 应用程序时要使用哪种身份验证?

iOS 禁用 NavigationController 后退按钮的动画

ios - 在 iOS 中嵌套 block