2017-05-27 7 views
0

ウェブサイトをダウンロードしてそのコンテンツをログに文字列として表示したかったのですが、最初に読み込みに数時間かかることがありました。ウェブサイトのソースコードを入手してください。私はウェブコンテンツをダウンロードしたが、正しく動作していない

public class MainActivity extends AppCompatActivity { 


    public class DownloadTask extends AsyncTask<String, Void, String> { 


     @Override 
     protected String doInBackground(String... urls) { 

      String result = ""; 
      URL url; 
      HttpURLConnection urlConnection = null; 

      try { 

       url = new URL(urls[0]); 

       urlConnection = (HttpURLConnection)url.openConnection(); 

       InputStream in = urlConnection.getInputStream(); 

       InputStreamReader reader = new InputStreamReader(in); 

       int data = reader.read(); 

       while (data!= -1) { 

        char current = (char) data; 

        result += current; 

        data = reader.read(); 

       } 

       return result; 

      } 
      catch (Exception e){ 

       e.printStackTrace(); 

       return "Failed"; 

      } 


     } 
    } 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     DownloadTask task = new DownloadTask(); 
     String result = null; 

     try { 

      result = task.execute("http://www.kicker.de/").get(); 


     } catch (InterruptedException e) { 

      e.printStackTrace(); 

     } catch (ExecutionException e) { 

      e.printStackTrace(); 

     } 

     Log.i("Contents of URL", result); 


    } 


} 
+0

を取得するにはBufferedReaderの()を使用してください。取得します()'。それはAsynctaskの目的を打ち破った –

+0

そしてあなたは文書を見なかったのですか? https://developer.android.com/training/volley/simple.html –

答えて

0

あなたは

public class DownloadTask extends AsyncTask<String, Void, String> { 


@Override 
protected String doInBackground(String... urls) { 

    StringBuilder html = new StringBuilder(); 
    URL url; 
    HttpURLConnection urlConnection = null; 

    try { 

     url = new URL(urls[0]); 

     urlConnection = (HttpURLConnection)url.openConnection(); 

     InputStream in = urlConnection.getInputStream(); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 

     for (String line; (line = reader.readLine()) != null;) { 
       html.append(line); 
     } 

     return html.toString(); 

    } 
    catch (Exception e){ 

     e.printStackTrace(); 

     return "Failed"; 

    } 
    finally{ 
     in.close(); 

    } 

} 

InputStreamReaderの

から読み込まれた実際のデータ}実行 `絶対に使用しないでください

関連する問題