如何将SSL密码套件添加到HttpsURLConnection

时间:2015-05-07 18:15:02

标签: java android ssl httpsurlconnection

在更新为HttpsURLConnection后,使用Android 5.0 lollipop登录https网站时出现例外情况。 (它在android 4.4 kitkat中运行良好)

05-08 02:18:12.277  32344-32482/com.soonoo.mobilecampus E/INFO﹕ javax.net.ssl.SSLHandshakeException: Handshake failed

我已经阅读了有关android 5.0更改的文章。 (http://developer.android.com/about/versions/android-5.0-changes.html#ssl

似乎我应该添加一些服务器所需的密码套件。

有人可以给我一些关于如何将密码套件添加到HttpsURLConnection的建议/代码吗?我尝试下面的答案,但没有为我工作... (Which Cipher Suites to enable for SSL Socket?

我使用下面的代码连接:

        HttpsURLConnection con = (HttpsURLConnection) new URL(Sites.LOGIN_URL).openConnection();
        con.setRequestMethod("POST");
        con.setRequestProperty("Content-length", String.valueOf(loginQuery.length()));
        con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)");
        con.setDoOutput(true);
        con.setDoInput(true);

        DataOutputStream output = new DataOutputStream(con.getOutputStream());
        output.writeBytes(loginQuery);
        output.close();

1 个答案:

答案 0 :(得分:0)

您无法将密码套件添加到客户端。我建议使用像Qualys SSL Labs' SSL Server test这样的在线工具来检查服务器支持哪些密码套件。如果服务器不支持Android 5 supports的任何密码套件,我担心您无法从客户端做到这一点。