1

reome URL から画像をダウンロードしたいのですが、SSL エラーが発生します。

 String imgURL="http://whootin.s3.amazonaws.com/uploads/upload/0/0/23/82/Note_03_26_2013_01_10_55_68.jpg?AWSAccessKeyId=AKIAJF5QHW2P5ZLAGVDQ&Signature=Za4yG0YKS4%2FgoxSidFsZaAA8vWQ%3D&Expires=1364888750";

   final ImageView  ivCurrent;
   ivCurrent = (ImageView)findViewById(R.id.imageView1);

  // calling DownloadAndReadImage class to load and save image in sd card

     DownloadAndReadImage dImage= new DownloadAndReadImage(imgURL,1);

     ivCurrent.setImageBitmap(dImage.getBitmapImage());

エラー:

javax.net.ssl.SSLException: Read error: ssl=0x19a4a0: I/O error during system call, Connection reset by peer
4

3 に答える 3

1

私たちはクラスについて何も知らないので、あなたの質問は意味がありませんDownloadAndReadImage。ちなみに、マニフェストに次の 2 つのアクセス許可を追加する必要があると思います。

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

PS 優れたライブラリをお探しの場合は、ImageLoderAndroid Universal Image Loader をお勧めします。

https://github.com/nostra13/Android-Universal-Image-Loader

于 2013-04-01T13:59:09.817 に答える
0

私のプロジェクトInputStreamsでは、次の方法で SD カードに画像をダウンロードして保存します。

URL url = new URL(imageUrl);

InputStream input = url.openStream();

try {

    // The sdcard directory e.g. '/sdcard' can be used directly, or
    // more safely abstracted with getExternalStorageDirectory()
    String storagePath = Environment.getExternalStorageDirectory()
                                    .getAbsolutePath();

    int barIndex = imageUrl.indexOf("/");
    String path = imageUrl.substring(barIndex + 1) + ".jpg";

    String sdcardPath = storagePath + "/myapp/";

    File sdcardPathDir = new File(sdcardPath);

    sdcardPathDir.mkdirs();

    OutputStream output = new FileOutputStream(sdcardPath + imagemId + ".jpg");

    try {
        byte[] buffer = new byte[4 * 1024];
        int bytesRead = 0;
        while ((bytesRead = input.read(buffer, 0, buffer.length)) >= 0) {
            output.write(buffer, 0, bytesRead);
        }
    } finally {
        output.close();
    }

} finally {
    input.close();
}

@NullPointer が指摘したように、マニフェスト ファイルを確認することを忘れないでください。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-04-01T13:58:20.563 に答える
0

経由で HTTPS/HTTP URL に接続していますが、サイトによって提供された SSL 証明書は、コードを実行しているデバイスによって信頼されていません。

Apache HTTP クライアントで信頼を設定します

于 2013-04-01T14:07:22.133 に答える