インターネットから写真をダウンロードするアプリを作成しました。コードの一部は次のとおりです。
try {
Log.d("LoadImageFromURL.url", url);
url=url.replace(" ", "+");
Log.d("LoadImageFromURL.url", url);
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setUseCaches(true);
String contentType = connection.getHeaderField("Content-Type");
boolean isImage = contentType.startsWith("image/");
Log.d("Image size", Long.toString(connection.getContentLength()));
Log.d("LoadImageFromURL", "getHeaderField Complete");
if(isImage){
use httpGet to download the photo....
}
今、私は2つの問題に直面しています:
1) URL にスペースがある場合 (つまり、 http: //www.abc.com/123 45.jpg)、コードはスペースを「+」に置き換えます (つまり、 http ://www.abc.com/ 123+45.jpg )。しかし、結果は null を返します。
2) HeaderField を取得するのに 20 秒かかります。遅すぎます。このプロセスをスキップしようとすると、写真のダウンロードは数秒で完了します。
写真のサイズは 1005511 バイトのみです。何か案は?