2016-04-11 2 views
0

こんにちは私は将来的に特定の情報を今後取り出すことができるように、Logcat内にウェブサイトのHTMLコンテンツをダウンロードしようとしています。しかし、私がそれをする前に、私は最初にウェブサイトに連絡できるかどうかをテストしたい。現在、私はエラーを取得していないが、私はコンテキストを取得していない。AndroidウェブサイトをダウンロードするHTMLコンテンツ

//私は

public class DownloadTsk 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 (MalformedURLException e) { 


      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 


     return null; 
    } 
} 

を作成し、パブリッククラス//のonCreateメソッド

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


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

    try { 
     result = task.execute("http://www.posh24.com/celebrities").get(); 

     Log.i("Content", result); 


    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } catch (ExecutionException e) { 
     e.printStackTrace(); 
    } 

//現在の結果

Content: <!DOCTYPE html> 
      <html> 
      <head> 

答えて

0

あなたはその後、正常に接続かどうかを知りたい場合はあなたは使用する必要があります

int responseCode = urlConnection.getResponseCode(); 

そして、私はHTTPリクエストから結果を取得していますどのように実際にこれは次のとおりです。

int responseCode = con.getResponseCode(); 

     if (responseCode == HttpURLConnection.HTTP_OK) { //success 
      BufferedReader in = new BufferedReader(new InputStreamReader(
      con.getInputStream())); 
      String inputLine; 
      StringBuilder response = new StringBuilder(); 

      while ((inputLine = in.readLine()) != null) { 
       response.append(inputLine); 
      } 
      in.close(); 

      return response.toString(); 
     } 
0

あなたのコードが動作すると、文字列の中にページを読み込みます。

私は一度に1文字ずつ読むのではなく、バッファを使用します。 これは別の日の問題です。

私はあなたがログに書き込む前にhtmlをエスケープする必要があると思う。

関連する問題