我有一个应用程序,通过https调用web服务。当我在手机上运行apk时,它运行得很好。然而,在模拟器中,所有的SSL POST请求都会失败,并显示以下错误信息:
Read error: ssl=0xb402be00: Failure in SSL library, usually a protocol error error:100c50bf:SSL routines:ssl3_read_bytes:NO_RENEGOTIATION (external/boringssl/src/ssl/s3_pkt.c:852 0xabf7fcd7:0x00000000)
在我们服务器的访问日志中,每当模拟器尝试访问Web服务时,都会报告403(禁止)错误,显然是因为模拟器与我们的服务器之间没有正确握手。apache的错误日志中有一堆这样的行:
[Thu Aug 20 12:21:21 2015] [error] [client xxx.xxx.xxx.xxx] Re-negotiation handshake failed: Not accepted by client!?
Apache实际上添加了“!?”所以看起来像是一个严重的意外错误。
在我的IDE中,我已经选中了“自动接受非信任证书”的选项,但并没有什么作用。
我在网上看到了一些解决Android中各种SSL问题的方法,但它们似乎都是手机本身存在问题,并需要修改代码。由于它在手机上运行良好,因此似乎这是一个Android Studio的问题,我应该能够通过配置设置来纠正这个问题。或者我需要在apache中进行一些操作?
底线是:如何使我的应用程序在Android Studio的模拟器中与SSL webservice通信?
使用Studio 1.3.1,Java 1.7.0_65。
Read error: ssl=0xb402be00: Failure in SSL library, usually a protocol error error:100c50bf:SSL routines:ssl3_read_bytes:NO_RENEGOTIATION (external/boringssl/src/ssl/s3_pkt.c:852 0xabf7fcd7:0x00000000)
在我们服务器的访问日志中,每当模拟器尝试访问Web服务时,都会报告403(禁止)错误,显然是因为模拟器与我们的服务器之间没有正确握手。apache的错误日志中有一堆这样的行:
[Thu Aug 20 12:21:21 2015] [error] [client xxx.xxx.xxx.xxx] Re-negotiation handshake failed: Not accepted by client!?
Apache实际上添加了“!?”所以看起来像是一个严重的意外错误。
在我的IDE中,我已经选中了“自动接受非信任证书”的选项,但并没有什么作用。
我在网上看到了一些解决Android中各种SSL问题的方法,但它们似乎都是手机本身存在问题,并需要修改代码。由于它在手机上运行良好,因此似乎这是一个Android Studio的问题,我应该能够通过配置设置来纠正这个问题。或者我需要在apache中进行一些操作?
底线是:如何使我的应用程序在Android Studio的模拟器中与SSL webservice通信?
使用Studio 1.3.1,Java 1.7.0_65。
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.bla.bla"
minSdkVersion 14
targetSdkVersion 19
multiDexEnabled true
versionCode 12
versionName '1.2.0.8'