【问题标题】:"IllegalArgumentException: SSLSocketFactory is null" on some devices, and some not?“IllegalArgumentException: SSLSocketFactory is null”在某些设备上,有些不是?
【发布时间】:2013-10-28 05:30:55
【问题描述】:

我正在使用来自 StartSSL 的免费 SSL 证书。我将 PEM 编码证书添加到我的应用程序中。

该实现适用于我的三部安卓手机(都是果冻豆),但三星 Galaxy Note 1(安卓版本 4.0.4)不起作用。

令人惊讶的是,它没有给出 SSLException,而是 IllegalArgumentException。

更详细的异常

    Caused by: java.lang.IllegalArgumentException: SSLSocketFactory is null
    at javax.net.ssl.HttpsURLConnection.setSSLSocketFactory(HttpsURLConnection.java:282)
    at com.lovey.util.NetworkFunction.communicateString(NetworkFunction.java:288)
    at com.lovey.util.NetworkFunction.login(NetworkFunction.java:337)
    at com.lovey.classes.LoginAsync.doInBackground(LoginAsync.java:36)
    at com.lovey.classes.LoginAsync.doInBackground(LoginAsync.java:1)
    at android.os.AsyncTask$2.call(AsyncTask.java:264)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)

我认为一切正常。在资产中读取证书的输入流工作正常。

知道发生了什么吗?

【问题讨论】:

    标签: java android http ssl https


    【解决方案1】:

    这是caused(hyperlink with solution),在版本低于 Jellybean 的 Android 设备上使用 TLSv1.2。

    请改用此来源。还要让您的服务器接受 TLSv1.0 连接。

    if(Build.VERSION.SDK_INT<16)
        sslContext = SSLContext.getInstance("TLS");
    else
        sslContext = SSLContext.getInstance("TLSv1.2");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      相关资源
      最近更新 更多