안녕하세요.

서버에서 동적으로 만들어지는 이미지 파일을 다운 받아서 화면에 뿌려줘야하는데,
잘 안되고 있습니다. 아시는 분 도움을 부탁드립니다.
(질문은 처음이네요. ㅎㅎ)

일반적으로 웹에 있는 이미지의 URL을 넣으면 잘 보여지는데, 서버에서 동적으로 생성하는
이미지의 경우에는 안보이네요. ㅠㅠ

아래는 관련 코드입니다.

getImageStream()에서 URL을 준비하고 DownloadImage에서 받아와서 getImageStream()에서 보여주는 흐름입니다.

아래 주석처리 되어 있는 경로의 이미지를 가져올 경우에는 잘 보여지는데,
imageurl 에 동적 url (예. http://test.test.com/createImage.do?id=image&page=1) 을 넣게 되면
conn.getContentLength() 가 -1 값이 나오네요.
해당 url을 브라우져에서 보면 이미지가 잘 나옵니다. ;;;;

무엇을 빼먹은 걸까요? 아시는 분 답변을 부탁드립니다.


 public void getImageSteam(String imageurl)
 {
      //imageurl = "http://a3.twimg.com/profile_images/1149292099/Fateflysy_normal.jpg";
     
      String path = Environment.getDataDirectory().getAbsolutePath();
      path += "/data/"+getPackageName()+"/files/test.png";

      if (new File(path).exists() == false)
   {
       DownloadImage(imageurl, "test.png");
   }

   Bitmap bitmap = BitmapFactory.decodeFile(path);
   img.setImageBitmap(bitmap);  
 }

 boolean DownloadImage(String Url, String FileName)
 {
  URL imageurl;
  int Read;
 
  Log.d(LOG_TAG, " filename : " + FileName);  
  
  try
  {
   imageurl = new URL(Url);
   Log.d(LOG_TAG, " imageUrl " + imageurl);
   
   HttpURLConnection conn= (HttpURLConnection)imageurl.openConnection();
  
   Log.d(LOG_TAG, " conn length : " + conn.getContentLength());
   
   int len = conn.getContentLength();
   byte[] raster = new byte[len];
   
   InputStream is = conn.getInputStream();
   FileOutputStream fos = openFileOutput(FileName, 0);

   for (;;)
   {
    Read = is.read(raster);
    if (Read <= 0)
    {
     break;
    }
    fos.write(raster,0, Read);
   }

   is.close();
   fos.close();
   conn.disconnect();
  } catch (Exception e) {
   
   Log.d(LOG_TAG, e.toString());
   
   return false;
  }
  return true;
 }