2013-10-29 2 views
3

이 간단한 다운로드를 받고 이미지를 저장하려고 시도하지만 연결 시간 초과 예외가 계속 발생합니다.AsyncTask의 Android 연결 시간 초과

내가 아는 한 웹 주소는

new DownloadImageTask(); 



private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 


    protected Bitmap doInBackground(String... urls) { 

     String urldisplay = "http://masterzangetsu.eu/Apps/BandWallpapers/Blink182/1_thumbnail.png"; 
     Bitmap bitmap = null; 
     try { 
      InputStream in = new java.net.URL(urldisplay).openStream(); 
      bitmap = BitmapFactory.decodeStream(in); 
     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return bitmap; 
    } 

    @Override 
    protected void onPreExecute() { 

    } 

    @Override 
    protected void onProgressUpdate(Void... values) { 

    } 

    protected void onPostExecute(Bitmap bitmap) { 

     File sdCardDirectory = Environment.getExternalStorageDirectory(); 
     File image = new File(sdCardDirectory, "test.png"); 

     boolean success = false; 

     // Encode the file as a PNG image. 
     FileOutputStream outStream; 
     try { 

      outStream = new FileOutputStream(image); 
      bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
      /* 100 to keep full quality of the image */ 

      outStream.flush(); 
      outStream.close(); 
      success = true; 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     if (success) { 
      Toast.makeText(getApplicationContext(), "Image saved with success", 
        Toast.LENGTH_LONG).show(); 
     } else { 
      Toast.makeText(getApplicationContext(), 
        "Error during image saving", Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

그리고을 heres outoput 작동합니다

10-29 12:33:36.075: W/System.err(817): java.net.ConnectException: failed to connect to  masterzangetsu.eu/91.208.99.12 (port 80): connect failed: ETIMEDOUT (Connection timed out) 
10-29 12:33:36.075: W/System.err(817): at libcore.io.IoBridge.connect(IoBridge.java:114) 
10-29 12:33:36.095: W/System.err(817): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 
10-29 12:33:36.095: W/System.err(817): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 
10-29 12:33:36.095: W/System.err(817): at java.net.Socket.connect(Socket.java:842) 
10-29 12:33:36.095: W/System.err(817): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76) 
10-29 12:33:36.095: W/System.err(817): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 
10-29 12:33:36.095: W/System.err(817): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 
10-29 12:33:36.095: W/System.err(817): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 
10-29 12:33:36.105: W/System.err(817): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 
10-29 12:33:36.105: W/System.err(817): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 
10-29 12:33:36.105: W/System.err(817): at libcore.net.http.HttpEngine.connect(HttpEngine.java:311) 
10-29 12:33:36.105: W/System.err(817): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 
10-29 12:33:36.115: W/System.err(817): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 
10-29 12:33:36.115: W/System.err(817): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282) 
10-29 12:33:36.115: W/System.err(817): at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495) 
10-29 12:33:36.115: W/System.err(817): at com.koushikdutta.urlimageviewhelper.HttpUrlDownloader$1.doInBackground(HttpUrlDownloader.java:51) 
10-29 12:33:36.115: W/System.err(817): at com.koushikdutta.urlimageviewhelper.HttpUrlDownloader$1.doInBackground(HttpUrlDownloader.java:1) 
10-29 12:33:36.125: W/System.err(817): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
10-29 12:33:36.125: W/System.err(817): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
10-29 12:33:36.125: W/System.err(817): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
10-29 12:33:36.136: W/System.err(817): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
10-29 12:33:36.136: W/System.err(817): at java.lang.Thread.run(Thread.java:856) 
10-29 12:33:36.145: W/System.err(817): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out) 
10-29 12:33:36.165: W/System.err(817): at libcore.io.Posix.connect(Native Method) 
10-29 12:33:36.165: W/System.err(817): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85) 
10-29 12:33:36.165: W/System.err(817): at  libcore.io.IoBridge.connectErrno(IoBridge.java:127) 
10-29 12:33:36.165: W/System.err(817): at libcore.io.IoBridge.connect(IoBridge.java:112) 
10-29 12:33:36.165: W/System.err(817): ... 21 more 

전체 출력 http://pastie.org/8439940

및 권한

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

도움이 될 것입니다.

+1

인터넷에 액세스 할 수있는 권한을 설정하셨습니까? –

+0

실제로 매니페스트 –

+0

에서 사용 권한을 추가하여 defaulthttpconnection을 사용하고 연결 시간 제한을 설정하십시오. 장치 넷 연결로 인해 지연이 발생할 수 있습니다. –

답변

3

코드를 테스트 한 결과 정상적으로 작동합니다. 인터넷 연결을 확인하는 것이 좋습니다.

+0

그래서 그것은 ... 내가 테스트하고 있던 프록시와 관련이 있어야합니다. 감사 –