2009-07-21 17 views

cevap

5

bir resim indirmek için aşağıdaki kodu kullanabilirsiniz:

URLConnection connection = uri.toURL().openConnection(); 
connection.connect(); 
InputStream is = connection.getInputStream(); 
BufferedInputStream bis = new BufferedInputStream(is, 8 * 1024); 
Bitmap bmp = BitmapFactory.decodeStream(bis); 
bis.close(); 
is.close(); 

AndroidManifest.xml dosyasında aşağıdaki izinleri gerektirir:

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

olarak gönderilecek ve üstbilgileri ayarlamak ve durum kodunu okumak isterseniz HttpURLConnection'a bağlantıyı yapın. – ThomasRS

5

Şu anda Android'de desteklenebilecek bir HTTP istemci kitaplığı var, ancak herhangi bir ince tahıl denetimi için URL & HttpURLConnection. Kod şöyle görünür:

URL connectURL = new URL(<your URL goes here>); 
HttpURLConnection conn = (HttpURLConnection)connectURL.openConnection(); 

// do some setup 
conn.setDoInput(true); 
conn.setDoOutput(true); 
conn.setUseCaches(false); 
conn.setRequestMethod("GET"); 

// connect and flush the request out 
conn.connect(); 
conn.getOutputStream().flush(); 

// now fetch the results 
String response = getResponse(conn); 
getResponse() sizin durumda ikili veri yığını bir bayt dizisi StringBuffer değiştirmek isteyebilirsiniz geri alıyorsanız, şuna benzer

ve daha büyük bir artışla okur.

private String getResponseOrig(HttpURLConnection conn) 
{ 
    InputStream is = null; 
    try 
    { 
     is = conn.getInputStream(); 
     // scoop up the reply from the server 
     int ch; 
     StringBuffer sb = new StringBuffer(); 
     while((ch = is.read()) != -1) { 
      sb.append((char)ch); 
     } 
     return sb.toString(); 
    } 
    catch(Exception e) 
    { 
     Log.e(TAG, "biffed it getting HTTPResponse"); 
    } 
    finally 
    { 
     try { 
     if (is != null) 
      is.close(); 
     } catch (Exception e) {} 
    } 

    return ""; 
} 

size en kısa sürede olabildiğince hafızanızı bırakın Android emin olmaktır yaklaşık gayretli olmak gerekir büyük, başka şeyler olabilir görüntü verilerine bahsediyoruz gibi, yığın 16MB sadece aldı tüm uygulamalar için oynamak ve hızlı biterse ve bellek kaynaklarıyla geri verme konusunda gerçekten iyi değilse GC seni çıldırtıyorlar edecek kadar

+0

uygulama bağlanmasına izin emülatör mu internet ?? Emülatörüm cihazın internete bağlanmasına izin vermediğini düşünüyorum. –

+1

Evet, ağ yığını – jottos

11

Dont AndroidManifest.xml, uygulamasını mı Web'e bağlanmak için izin vermek

unutmak: Masaüstünde çalışırken

<uses-permission android:name="android.permission.INTERNET" /> 
İlgili konular