C# Code in Java

21/03/2015 - 10:36 von Daniel Guger | Report spam
Hallo

Ich möchte in Java (für eine App) eine HTML-Datei als String downloaden!

Hier der C# Code:

WebClient webClient = new WebClient();
string sX = webClient.DownloadString("http://www.google.at"));


Das selbe bràuchte ich in Java inkl. aller Implementierungen!

Ich hab bereits das versucht:

try {
URL url = new URL("http://www.google.at");
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

String sLine;
while ((sLine = br.readLine()) != null)
sX = sX + sLine;

br.close();
is.close();

Toast.makeText(this, sX, Toast.LENGTH_LONG).show();
}
catch (Exception ex)
{
Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
}

Als "Toast" bekomme ich immer: java.net.MalformedURLException!


Ich hoffe mir kann jemand helfen!
Danke im Voraus :)
 

Lesen sie die antworten

#1 Patrick Roemer
21/03/2015 - 12:59 | Warnen spam
Responding to Daniel Guger:
try {
URL url = new URL("http://www.google.at");
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));

String sLine;
while ((sLine = br.readLine()) != null)
sX = sX + sLine;

br.close();
is.close();

Toast.makeText(this, sX, Toast.LENGTH_LONG).show();
}
catch (Exception ex)
{
Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
}

Als "Toast" bekomme ich immer: java.net.MalformedURLException!



Das sollte es so tun (und tut es auch bei mir unter Java, eine
Android-Umgebung habe ich nicht am Start - taete mich aber wundern, wenn
das Parsingverhalten von java.net.URL unter Android abweichen wuerde).

MalformedURLException#toString() sollte eigentlich nach einem
Doppelpunkt noch eine Message beinhalten, die beschreibt, was genau an
der URL nicht passt...? (Du koenntest im catch-Block auch
android.util.Log verwenden, um einen vollstaendigen Stacktrace zu erhalten.)

Nebenbei:
- sX sollte besser ein StringBuilder sein, kein String.
- br sollte in einem finally-Block geschlossen werden (is.close() wird
implizit durch br.close() getriggert).
- Der Content wird so mit dem System-Encoding gelesen, nicht mit dem im
#getContentType() auseinanderpfriemeln und das Charset an den
InputStreamReader uebergeben.
- Es gibt diverse "WebClient"-Implementierungen, z.B. in Apache
HttpComponents, die den Spass vereinfachen - dann hast Du aber halt
Drittbibliotheken mit am Fuss.

Viele Gruesse,
Patrick

Ähnliche fragen