HTTPS下载文件错误android 4.4

时间:2016-07-20 10:50:35

标签: java android ssl https

我有这样一个问题,下面的小代码图片下载,其中params [0] - url和params [2] - 文件名,这个设计在Android 5.0+上运行良好,但在旧版本上,我收到一个错误:

  

-javax.net.ssl.SSLException:由对等方关闭的连接

@Override
protected Bitmap doInBackground(String... params) {
    Bitmap bitmap = null;
    InputStream is = null;

    try {
        is = new URL(params[0]).openStream();

    } catch (IOException e) {
        e.printStackTrace(); // Exception there
    }
    bitmap = BitmapFactory.decodeStream(is);
    try {
        is.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    OutputStream outStream = null;
   File file = new File(Constans.DATA_APPLICATION_PATH+"/photo/"+params[1].replace("\"","").trim());

    try {
        // make a new bitmap from file
        outStream = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        outStream.flush();
        outStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    file.deleteOnExit();
   return bitmap;
}

`

1 个答案:

答案 0 :(得分:1)

您的SSL授权存在问题,如果您使用的是自签名证书,则会出现问题。

因此,使Android应用程序连接到URL的方法是跳过SSL验证(仅当我们确定连接时)

为此,您可以添加this class并在onCreate方法

中执行
new NukeSSLCerts().nuke();

它将通过信任所有证书来跳过证书验证。