Моя цель - загрузить изображения с сервера Google App Engine с помощью моего приложения для Android.Я использую для этого асинктическую задачу.Сервер находится в Google App Engine, а изображения (файлы JPEG) - в Blobstore.Сначала я проверил, работает ли сервер с моим браузером Google Chrome.Я мог видеть изображение с тем же URI в моем браузере.Так что мой сервер работает нормально.Мое соединение имеет сеанс, и это соединение https.Мое приложение должно загружать изображения как рисованные (или растровые?) И создавать из них массив и помещать этот массив в графический адаптер для галереи.Проблема в том, что когда я делаю Drawable myImage = Drawable.createFromStream (is, "Image");myImage является нулевым.(Я проверяю это с помощью If (myImage == null)).Почему мой браузер показывает изображение, но в моем коде оно пустое?
PS: я провел большой поиск, но существует множество альтернатив для загрузки изображения из Интернета.Но я не могу понять, почему это не работает.Я запустил код на Android 2.2.
Вот код:
URI uri = new URI(URIString);
HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
Scheme sch = new Scheme("https", socketFactory, 443);
httpclient.getConnectionManager().getSchemeRegistry().register(sch);
HttpGet httpget = new HttpGet(uri);
System.out.println(httpget.getURI());
HttpResponse response = httpclient.execute(httpget, myLibrary.localContext);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
Drawable myImage= Drawable.createFromStream(is, "Image");
entity.consumeContent();
if (myImage!=null){
System.out.println("PhotoID " + PhotoID + " is NOT null!");
return myImage;
} else {
System.out.println("PhotoID " + PhotoID + " is null!");
return null;
}
Спасибо за любую идею!