title: android - (HttpURLConnection) downloading image from internet
body: <p>I want to create a simple android app that retrieves an image from the internet
  The Activity code looks like this :</p>
  
  <pre><code>import java.io.IOException;
  import java.io.InputStream;
  
  import android.support.v7.app.ActionBarActivity;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.widget.ImageView;
  import android.widget.Toast;
  
  public class BitmapDemo extends ActionBarActivity {
      //bikin objek image view nya
      ImageView imageview;
  
      private Bitmap downloadImage(String url){
          Bitmap bitmap = null;
          InputStream in = null;
          Koneksi koneksi = new Koneksi();  //class untuk koneksi nya
  
          try{
              in = koneksi.OpenHttpConnection(url);
              bitmap = BitmapFactory.decodeStream(in);
              in.close();
          }
          catch(IOException ex){
              Toast.makeText(this, ex.getLocalizedMessage(),Toast.LENGTH_LONG).show();
              ex.printStackTrace();
          }
  
          return bitmap;
      }
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_bitmap_demo);
  
          //download image nya
          //Bitmap bitmap = downloadImage("http://10.0.3.2/mp/tux2.jpeg");  //localhost
          Bitmap bitmap = downloadImage("http://infinitejest.wallacewiki.com/david-foster-wallace/images/a/ab/Nasa_Emblem.jpg");  //localhost
          //Bitmap bitmap = downloadImage("nama saya luki");  //localhost
          imageview = (ImageView)findViewById(R.id.imageview);
          imageview.setImageBitmap(bitmap);
      }
  </code></pre>
  
  <p>And for the connection, i created a class called Koneksi.java (called in the activity on line 22</p>
  
  <pre><code>import java.io.IOException;
  import java.io.InputStream;
  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.net.URLConnection;
  
  //import org.apache.http.HttpConnection;
  
  public class Koneksi {
      public InputStream OpenHttpConnection(String urlString) throws IOException{
          InputStream in = null;
          int response = -1;
  
          URL url = new URL(urlString);
          final URLConnection conn = url.openConnection();
  
          if(!(conn instanceof HttpURLConnection)){
              throw new IOException("String yang dimasukkan bukan alamat web");
          }
  
                  try{
                      HttpURLConnection httpCon = (HttpURLConnection) conn;
                      httpCon.setAllowUserInteraction(false);
                      httpCon.setInstanceFollowRedirects(true);
                      httpCon.setRequestMethod("GET");
                      httpCon.connect();
  
                      //apakah respon berhasil
                      response = httpCon.getResponseCode();
                      if(response == HttpURLConnection.HTTP_OK){  //sama dengan 200 ga ya
                          in = httpCon.getInputStream();
                      }
                  }
  
                  catch(Exception ex){
                      //ex.printStackTrace();
                      throw new IOException("koneksi error");
                  }
  
          return in; 
      }
  }
  </code></pre>
  
  <p>When i execute the app, the catch on Koneksi.java throws, saying "koneksi error". Am i missing something?</p>
  
  <p>Note : i have already add "android.permission.ACCESS_NETWORK_STATE" and also "android.permission.INTERNET" in the manifest</p>