2016-04-11 6 views
0

Hallo Ich versuche, Webseiten HTML-Inhalt in meinem Logcat herunterladen, so dass ich zukünftig spezifische Informationen in der Zukunft auswählen kann. Aber bevor ich das machen kann, möchte ich testen, ob ich die Website zuerst kontaktieren kann. Zur Zeit bekomme ich keinen Fehler, aber ich bekomme auch keinen Kontext.Android Download-Website HTML-Inhalt

// Die öffentliche Klasse habe ich

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 Methode

@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(); 
    } 

// Aktuelle Ergebnis

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

Antwort

0

Wenn Sie wissen möchten, ob Sie erfolgreich dann verbunden Sie sollten

0 verwenden

Und tatsächlich ist dies, wie ich das Ergebnis aus der HTTP-Anforderung erhalten:

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

Ihr Code funktioniert und liest die Seite in den String.

Ich würde einen Puffer verwenden, anstatt es zu lesen, ein Zeichen zu einer Zeit , aber das ist eine Frage für einen anderen Tag.

Ich vermute, Sie müssen den HTML-Code vor dem Schreiben in das Protokoll zu entkommen.