2012-03-27 61 views
0

我有一个android应用程序,它使https连接到后端。我已成功添加了所需的证书(从后端获取并转换为bks格式),并且该应用可以在2.2,2.3和4.0.2仿真器上运行时连接。然而,在我的华为u8860(荣誉)与ics 4.0.3,应用程序不连接,最糟糕的是它不会给日志中的任何例外。在手机上,我也无法将本地浏览器指向后端,但我可以使用google-chrome for android。我搜索了高和低,但没有发现这种行为的解释。有任何想法吗?!在此先感谢无法通过代码和本地浏览器连接到https站点

+0

让你使用相同的移动数据载体/ WIFI网络进行所有的测试? – 2012-03-27 09:26:47

+0

为模拟器,我只能使用电脑的连接。但对于手机我使用我的数据载体的3G连接,我可以使用谷歌浏览器Android浏览器浏览后端,但我不能使用Android本机浏览器或通过代码。 – 2012-03-27 09:31:22

回答

0

我怀疑问题是由您的移动运营商造成的。 其中一些会根据User-Agent标头对HTTP请求执行恶意过滤(它们会阻止似乎不是来自移动设备的请求)。

您应该在手机上试用您的应用,使用Wifi连接来确认/减弱此假设。

如果它适用于无线网络,你应该尝试改变你的HTTP请求的用户代理,方法是将其设置为:

  • 硬编码的Android浏览器或iPhone Safari浏览器的User-Agent(即你可能承运人不会阻止自己的设备的浏览器)
  • 用户代理,你应该getUserAgentString()
+0

我试图通过WiFi连接应用程序。所以我试图从android浏览器的chrome中编写用户代理设置的硬编码(因为它连接),但没有成功。我也试过其他用户代理,但也没有成功。我只是检查响应代码,它是错误代码400(错误的请求)。所以我猜测移动运营商是“限制”https连接的请求大小而不是http。 – 2012-03-28 04:12:48

相关问题