2014-07-24 39 views
1

我需要一段代碼來檢查我的url是否可以下載pdf文件。 這裏是我自己學嘗試:android,檢查url是否可以下載東西

@Override 
     protected Boolean doInBackground(String... strings) { 
      String fileUrl = strings[0]; // -> http://maven.apache.org/maven-1.x/maven.pdf 
      String fileName = strings[1]; // -> maven.pdf 
      try { 
       //this is piece of code i use for check url reachable, not working atm. 
       if(InetAddress.getByName(fileUrl).isReachable(10000) && !fileName.contains(".pdf")){ 
        String extStorageDirectory = Environment.getExternalStoragePublicDirectory(
          Environment.DIRECTORY_DOWNLOADS).toString(); 
        File folder = new File(extStorageDirectory, documentActivity.getString(R.string.pdf_file_store_folder)); 
        folder.mkdir(); 

        File pdfFile = new File(folder, fileName); 

        try{ 
         pdfFile.createNewFile(); 
        }catch (IOException e){ 
         e.printStackTrace(); 
        } 
        FileDownloader.downloadFile(fileUrl, pdfFile); 
        return true; 
       } 
      } catch (IOException e) { 
       return false; 
      } 
      return false; 
     } 

這是我的任務異步一段代碼...我下載類的所有工作良好。我只需要一行來檢查,看看我的網址是否可到達...

和obove代碼does not真的工作.. 請幫助一些示例代碼。 THX

+0

你可以先簡單地調用該URL並檢查頭請求。這是基本上首先完成的 –

+0

如果它不可達,可能會拋出異常。在任何其他情況下,你必須檢查Http響應代碼 – Blackbelt

+0

那個url用於測試,它是100%有效的,但代碼只是不下載它,它評估爲false – seph

回答

9

對於檢查部分,嘗試了這一點

URL url = new URL(file_url); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
int code = connection.getResponseCode(); 

    if(code == 200) { 
    // reachable 
    } else { 
    } 
+0

真棒,工作! – seph

+0

工作很好!我用這個來避免谷歌應用程序引擎客戶端超時,因爲它需要更長的時間這個小snipplet。 :-) –

相關問題