Android Datei aus dem Netz einlesen

Schrubber

Bekanntes Mitglied
Hallo,

mir ist das schon fast peinlich. Jedoch habe ich nun ein weiteres Problem welches bei mir NUR in der Android-Programmierung auftritt und nicht bei Java...

Aktuelle Ausgangsposition ist folgendes:

Ich habe eine URL, Beispiel:

https://www.sis-handball.de/xmlexpo...4&auf=001518505501503507000000000000000008000

Diese wird mit einem Usernamen und Passwort aufgerufen und gibt folgende Daten zurück:
Bild IB4VFb32Ql_FxEOU0-Qssg.png

Der Quelltext schaut wie folgt aus:
Screenshot_20.png

Die URL gibt, wie darin angegeben, eigentlich XML wieder. Wenn ich mir zumindest die URL im XML-Reader anschaue erhalte ich folgenden Aufbau:

XML:
<TabelleGesamtMitAK>
  <Spielklasse>
    <Liga>001518505501503507000000000000000008000</Liga>
    <Name>2924 wC-Jgd. Oberliga Vorrunde 4</Name>
    <DV>1</DV>
    <Aufstiegsplaetze>0</Aufstiegsplaetze>
    <Abstiegsplaetze>0</Abstiegsplaetze>
    <Mannschaften>6</Mannschaften>
    <ApareoID>505501503507008</ApareoID>
    <ApareoSeason>518</ApareoSeason>
  </Spielklasse>
  <Platzierung>
    <Nr>1</Nr>
    <Verein>001518505501503507000000000000000008005</Verein>
    <Spiele>6</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>5</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>1</Verloren>
    <TorePlus>182</TorePlus>
    <ToreMinus>125</ToreMinus>
    <D>57</D>
    <PunktePlus>10</PunktePlus>
    <PunkteMinus>2</PunkteMinus>
    <Name>Mannschaft1</Name>
    <ToreAuswaertsPlus>119</ToreAuswaertsPlus>
    <VereinsNr>1310207043</VereinsNr>
    <DVPlatz>1</DVPlatz>
  </Platzierung>
  <Platzierung>
    <Nr>2</Nr>
    <Verein>001518505501503507000000000000000008006</Verein>
    <Spiele>6</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>5</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>1</Verloren>
    <TorePlus>169</TorePlus>
    <ToreMinus>124</ToreMinus>
    <D>45</D>
    <PunktePlus>10</PunktePlus>
    <PunkteMinus>2</PunkteMinus>
    <Name>Mannschaft2</Name>
    <ToreAuswaertsPlus>121</ToreAuswaertsPlus>
    <VereinsNr>1310207028</VereinsNr>
    <DVPlatz>2</DVPlatz>
  </Platzierung>
  <Platzierung>
    <Nr>3</Nr>
    <Verein>001518505501503507000000000000000008003</Verein>
    <Spiele>6</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>4</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>2</Verloren>
    <TorePlus>161</TorePlus>
    <ToreMinus>142</ToreMinus>
    <D>19</D>
    <PunktePlus>8</PunktePlus>
    <PunkteMinus>4</PunkteMinus>
    <Name>Mannschaft3</Name>
    <ToreAuswaertsPlus>33</ToreAuswaertsPlus>
    <VereinsNr>1310210006</VereinsNr>
  </Platzierung>
  <Platzierung>
    <Nr>4</Nr>
    <Verein>001518505501503507000000000000000008002</Verein>
    <Spiele>5</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>2</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>3</Verloren>
    <TorePlus>93</TorePlus>
    <ToreMinus>121</ToreMinus>
    <D>-28</D>
    <PunktePlus>4</PunktePlus>
    <PunkteMinus>6</PunkteMinus>
    <Name>Mannschaft4</Name>
    <ToreAuswaertsPlus>45</ToreAuswaertsPlus>
    <VereinsNr>1310208058</VereinsNr>
  </Platzierung>
  <Platzierung>
    <Nr>5</Nr>
    <Verein>001518505501503507000000000000000008001</Verein>
    <Spiele>5</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>1</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>4</Verloren>
    <TorePlus>109</TorePlus>
    <ToreMinus>146</ToreMinus>
    <D>-37</D>
    <PunktePlus>2</PunktePlus>
    <PunkteMinus>8</PunkteMinus>
    <Name>Mannschaft5</Name>
    <ToreAuswaertsPlus>39</ToreAuswaertsPlus>
    <VereinsNr>1310212027</VereinsNr>
  </Platzierung>
  <Platzierung>
    <Nr>6</Nr>
    <Verein>001518505501503507000000000000000008004</Verein>
    <Spiele>6</Spiele>
    <SpieleInsgesamt>10</SpieleInsgesamt>
    <Gewonnen>0</Gewonnen>
    <Unentschieden>0</Unentschieden>
    <Verloren>6</Verloren>
    <TorePlus>137</TorePlus>
    <ToreMinus>193</ToreMinus>
    <D>-56</D>
    <PunktePlus>0</PunktePlus>
    <PunkteMinus>12</PunkteMinus>
    <Name>Mannschaft6</Name>
    <ToreAuswaertsPlus>68</ToreAuswaertsPlus>
    <VereinsNr>1310210005</VereinsNr>
  </Platzierung>
</TabelleGesamtMitAK>
(Habe die Mannschaftsnamen abgekürzt zur Übersichtlichkeit).

Naja. Wenn ich nun entweder die URL als InputStream, als xmlParser oder ähnliches einlese, bekomme ich die 'FileNotFoundException'. Ich schaffe es nicht die Seite abzurufen.

In meiner Androidmanifeste hab ich auch folgendes eingetragen:

XML:
<uses-permission android:name="android.permission.INTERNET" />

Keine Chance...


Jemand zufällig ne Idee oder nen kleines Beispiel? Habe 3-4 aus dem Internet testweise 1:1 kopiert und nur die URL abgeändert, selbst da kein Erfolg... und zwar folgende:

https://www.tutorialspoint.com/android/android_xml_parsers.htm
https://stackoverflow.com/questions/6467848/how-to-get-http-response-code-for-a-url-in-java
https://stackoverflow.com/questions/8669903/android-reading-the-html-of-a-webpage-into-a-string
 

Anhänge

  • IB4VFb32Ql_FxEOU0_Qssg.png
    IB4VFb32Ql_FxEOU0_Qssg.png
    17,3 KB · Aufrufe: 33
  • Screenshot_20.png
    Screenshot_20.png
    16,9 KB · Aufrufe: 34

Thallius

Top Contributor
Wen ich den Link anklicke bekomme ich nur ein "Benutzerdaten falsch". Also gehe ich davon aus, dass es sich um eine Seite handelt bei der man sich vorher anmelden muss. Wie dein Code dann unter Java funktionieren soll ist mir ein Rätsel..
 

Schrubber

Bekanntes Mitglied
In der URL übergibt man in den Parametern "user" und "pass" die Daten. Wenn ich diese im Browser aufrufe erhalte ich die Ansicht vom 1. bzw. 2. Screenshot. Kann leider die Daten nicht öffentlich machen. Lade ich die Seite herunter, erhalte ich folgende Datei (im Anhang) jedoch als .html anstatt .txt.
 

Anhänge

  • SiS-Seite.txt
    3,7 KB · Aufrufe: 3

Schrubber

Bekanntes Mitglied
Habe das Programm mal in einer Online Java IDE getestet. Dort bekomme ich folgenden Fehler:

java.security.AccessControlException: access denied ("java.net.SocketPermission" "www.sis-handball.de:80" "connect,resolve")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:884)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:541)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
at sun.net.www.http.HttpClient.New(HttpClient.java:339)
at sun.net.www.http.HttpClient.New(HttpClient.java:357)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.URL.openStream(URL.java:1045)
at getXML.main(getXML.java:28)


Ist das also eher nen Fehler von meiner 'App' oder liegt das Problem beim Betreiber?
 

mrBrown

Super-Moderator
Mitarbeiter
Habe das Programm mal in einer Online Java IDE getestet. Dort bekomme ich folgenden Fehler:
Der Fehler sagt dir nur, das Netzwerkzugriffe mit der Online IDE nicht erlaubt sind, hat nichts mit deinem Problem zu tun.

Naja. Wenn ich nun entweder die URL als InputStream, als xmlParser oder ähnliches einlese, bekomme ich die 'FileNotFoundException'. Ich schaffe es nicht die Seite abzurufen.
Und wie sieht der Stacktrace und wie der Code zum abfragen aus?
 

Schrubber

Bekanntes Mitglied
Habe gerade etwas bezüglich "Threading" gelesen. Laut der Seite gibt es seit Android 3.x diese Fehlermeldung wenn man versucht im MainThread einen Aufruf im Web zu machen weil dann die App sich solange aufhängt bis der Call durch ist und dadurch freezed. Also muss ich den XML-Call im Hintergrund abarbeiten.

Habe dafür folgende Hilfestellung gefunden:
https://stackoverflow.com/questions/9413625/android-android-os-networkonmainthreadexception

Beitrag 3 (mit der Handskizze). Jedoch blicke ich da nicht wirklich durch... Mal schauen was ich dazu finde. Dankeschön
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Foto mit einer bestimmten Auflösung aufnehmen und als Datei ablegen. Android & Cross-Platform Mobile Apps 5
I Android CameraApp, eingebaute App nutzen und Ergebniss als Datei speichern Android & Cross-Platform Mobile Apps 0
R Android Audio-Datei fliessend vorspulen Android & Cross-Platform Mobile Apps 9
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
T Screenshot speichern ohne alte Datei überschreiben Android & Cross-Platform Mobile Apps 3
R Audio-Datei abspielen Android & Cross-Platform Mobile Apps 3
L Android content URI Datei einlesen Android & Cross-Platform Mobile Apps 9
V Android Wird mein Vorhaben funktionieren? (Apk Datei decompilieren, bearbeiten, compilieren) Android & Cross-Platform Mobile Apps 2
L Android Datei Übertragung im Netzwerk Android & Cross-Platform Mobile Apps 8
S Termin aus *.txt Datei in Google Kalender eintragen? Android & Cross-Platform Mobile Apps 1
S *.APK Datei automatisch installieren? Android & Cross-Platform Mobile Apps 4
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
B Android XML Datei editieren --> Permission denied Android & Cross-Platform Mobile Apps 2
M Android Speichern einer .txt Datei im InternalStorage Android & Cross-Platform Mobile Apps 2
B Android Absolute kml-Datei erzeugen Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
S Listview Einträge aus "xml" Datei Android & Cross-Platform Mobile Apps 1
G Datei erstellen Android & Cross-Platform Mobile Apps 10
L Android Apache POI: Datei speichern geht nicht Android & Cross-Platform Mobile Apps 1
A Android Datei erstellen/schreiben/auslesen Android & Cross-Platform Mobile Apps 1
K Android Erstellt Ordner statt Datei. Android & Cross-Platform Mobile Apps 3
M Datei verschicken per byteArray? Android & Cross-Platform Mobile Apps 1
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
B Datei downloaden über DialogBox? Android & Cross-Platform Mobile Apps 4
G Datei im Ordner speichern Android & Cross-Platform Mobile Apps 2
G Datei erzeugen, per E-Mail senden Android & Cross-Platform Mobile Apps 5
D Android WAV-Datei abspielen / Klangfolge(Endlos) Android & Cross-Platform Mobile Apps 4
A Android Eine Datei in Android löschen, aber wie ? Android & Cross-Platform Mobile Apps 24
D gpx-Datei von Smartphone auf Server uploaden Android & Cross-Platform Mobile Apps 4
U [Android] Eine Datei aus Jar-Archiv laden Android & Cross-Platform Mobile Apps 4
E Java ME Suche aufgenommene Datei Android & Cross-Platform Mobile Apps 4
T Android Ergebnis eines XML+XSLT "transform" in eine HTML - Datei schreiben (Android) Android & Cross-Platform Mobile Apps 2
K mp3 datei in j2me abspielen Android & Cross-Platform Mobile Apps 16
M Text in txt-Datei schreiben und nach ABC sortieren? Android & Cross-Platform Mobile Apps 2
R String wie WAV Datei nutzen Android & Cross-Platform Mobile Apps 4
A jad-Datei to N95 Android & Cross-Platform Mobile Apps 18
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
L SecurityException beim lesen/schreiben eine Datei Android & Cross-Platform Mobile Apps 7
G WAV datei abspielen aber wohin kopieren ? Android & Cross-Platform Mobile Apps 2
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
L Android Android exportierte XML einlesen Android & Cross-Platform Mobile Apps 2
S Textdatei in ListView einlesen Tutorial gesucht!? Android & Cross-Platform Mobile Apps 3
S Fehler beim Textdatei einlesen!? Android & Cross-Platform Mobile Apps 7
L Android Einlesen und rausschreiben von Daten auf SD Android & Cross-Platform Mobile Apps 3
L Android Hilfe bei Passwort einlesen Android & Cross-Platform Mobile Apps 5
W Videofile einlesen Android & Cross-Platform Mobile Apps 16
B Textfile Zeilenweise einlesen Android & Cross-Platform Mobile Apps 4

Ähnliche Java Themen

Neue Themen


Oben