HttpClient - Daten einer Website "unvollständig"

Phorx

Mitglied
Hallo zusammen,

ich logge mich mittels Apaches HttpClient auf eine Seite ein und lese anschließend eine Seite dieser Website aus. Die gewonnen Daten schreibe ich in eine Datei. Klappt soweit ganz gut, allerdings hab ich das Problem dass die Daten gelegentlich unvollständig sind. Zum Beispiel fallen teile der Tags am Ende der Zeile raus

anstatt <b>Name</b> wird dann nur noch <b>Name ausgelesen.

Es ist nicht auf Tags beschränkt, es kommt auch vor das dann der Name nur noch teilweise vorhanden ist.
Es ist kein bestimmtes Muster in den Fehlern zu erkennen, Fehler treten immer an unterschiedlichsten Stellen auf. Daher gehe ich davon aus, dass es sich um einen Fehler beim Auslesen handelt.

Hier ist meine Auslesecode:

Code:
he = hr.getEntity();
	    	        	if(he != null)
	    	        	{
	    		        	InputStreamReader inreader = new InputStreamReader(he.getContent(), "ISO8859_1");
	    		        	char[] cbuf = new char[2048];
	    		        	if(!new File(path).exists())
	    		        		new File(path).createNewFile();
	    		        	PrintWriter fw = new PrintWriter(new File(path));
	    		        	
	    		        	System.out.println("und abspeichern...");
	    		        	System.out.println("######################################");
	    		        	
	    		        	while(inreader.read(cbuf) != -1)
	    		        	{
	    		        		fw.println(cbuf);
	    		        	}
	    		        	
	    		        	System.out.println("######################################");
		    	        	
		    	        	System.out.println("Daten stehen nun zur Verarbeitung bereit");
	    	        		
		    	        	return true;
	    	        	}

Ich hoff es gibt bereits Erfahrungen mit diesen Übertragungsfehlern und ihr könnt mir Tipps zum vollständigen Auslesen der Daten geben oder andere Fehlerquellen nennen. :)

Mit freundlichen Grüßen
Phillip
 
E

Empire-P

Gast
while(inreader.read(cbuf) != -1)
{
fw.println(cbuf);
}

gibt in nicht zurück wieviel bytes gelesen wurden? näturlich darfst du in fw dann auch nur diese zahl screiben, und nicht den ganzen buffer,
 

Phorx

Mitglied
read() gibt die Anzahl der eingelesenen Zeichen zurück, das stimmt. Und -1 wenn der Stream zu Ende ist. Das würde meiner Meinung nach höchstens Auswirkung auf das Ende des Streams haben, aber die Fehler kommen auch mittendrin vor. Daher würde ich mal sagen, dass das jetzt eher nicht der Fehler ist !?

Aber danke für den Ansatz! :)
 

Antoras

Top Contributor
Dir ist schon klar, dass
Code:
cbuf
eine begrenzte Größe hat? Guck mal ob es da einen Überlauf gibt.
 

Empire Phoenix

Top Contributor
was ist wenn read weniger als cbuf.lenght zurückgibt? du schreibst dann dennoch die volle bufferlänge in fw.
(Angenommen du hast nur ganze Zeilen,) versuch den hier mal
Java:
	InputStream lin = urlc.getInputStream();
		Reader is = new InputStreamReader(lin ,"Cp1252");
		
		BufferedReader in2 = new BufferedReader( is );
		StringBuffer builder = new StringBuffer();
		for ( String s; ( s = in2.readLine() ) != null; ){
			builder.append(s + "\n"); //eigentlich ist das + hier contraproduktiv, sollten zwei appends sein stattdessen sinvoller weise.
			Thread.yield();
		}
		in2.close();
		is.close();
		lin.close();
		sitecode = builder.toString();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
G apache httpClient Problem. Netzwerkprogrammierung 5
B HttpClient Netzwerkprogrammierung 2
M Apache HTTPClient Server log ausgeben ?! Netzwerkprogrammierung 3
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
R Apache HttpClient File Download? Netzwerkprogrammierung 3
M HTTP HTTPClient Authentication - Quickr Server Netzwerkprogrammierung 8
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
M need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
K Login via apache httpclient Netzwerkprogrammierung 4
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T Apache HttpClient & Default Headers Netzwerkprogrammierung 9
T apache HTTPClient einloggen Netzwerkprogrammierung 2
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
M Seltsame Fehlermeldung (httpclient) Netzwerkprogrammierung 6
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
E HttpClient und return Problem Netzwerkprogrammierung 6
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
J Jakarta HTTPClient Netzwerkprogrammierung 5
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
C HTTPS mit Apache HTTPClient Netzwerkprogrammierung 1
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
OnDemand Daten per API senden, parallel Netzwerkprogrammierung 9
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
S Daten über TCP/IP senden Netzwerkprogrammierung 3
B Daten an Javaprogramm per URI Aufruf übergeben Netzwerkprogrammierung 7
N websocket - keine Daten mehr nach ca 80 Sekunden Netzwerkprogrammierung 0
C Spezielle Daten aus Website entnehmen Netzwerkprogrammierung 5
H Daten auf einer Webseite eintragen Netzwerkprogrammierung 11
A Socket Daten in Textdokument speichern? Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
J Daten von einem HTML-Textfeld abrufen Netzwerkprogrammierung 3
S Fakturierungsprogramm - Daten aktuell halten (blutiger Anfänger) Netzwerkprogrammierung 1
D Mit Server Daten austauschen Netzwerkprogrammierung 4
K Server liest Daten nicht Netzwerkprogrammierung 6
L HTTP Daten an Server übergeben Netzwerkprogrammierung 2
R Daten von Cloud laden Netzwerkprogrammierung 5
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
X Daten können nicht sofort empfangen werden Netzwerkprogrammierung 1
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
P Socket Best Practice: Daten bündeln Netzwerkprogrammierung 5
E Verfügbarkeit von Daten in Streams Netzwerkprogrammierung 4
F Daten aus Internetseiten auslesen Netzwerkprogrammierung 56
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
P Socket Daten senden mit ServerSocket? Netzwerkprogrammierung 2
H Daten an Textfeld einer Webseite schicken Netzwerkprogrammierung 2
A versch. Daten im Stream erkennen Netzwerkprogrammierung 2
D daten per post senden Netzwerkprogrammierung 3
M Senden von Daten nicht direkt möglich? Netzwerkprogrammierung 6
J Applet soll Daten auf Server ablegen - einfachster Weg fuer n00bs? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
F UDP Daten kommen nicht an Netzwerkprogrammierung 22
E Socket OutputSream abbruch.Wegen zuviel !empfangener! Daten? Netzwerkprogrammierung 10
C Client zu Client Daten übertragen Netzwerkprogrammierung 13
S Thread, Daten vom Socket lesen Netzwerkprogrammierung 2
S Socket XML-Daten und Parameter an Server schicken Netzwerkprogrammierung 3
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P Server/Client Daten empfangen, wenn Daten gesendet werden Netzwerkprogrammierung 9
K Socket Daten lesen ohne Längenangabe Netzwerkprogrammierung 19
T RMI Effizenteste Übertragung von Daten Netzwerkprogrammierung 6
A Socket Client Server Connection wird aufgebaut aber keine daten geschickt. Netzwerkprogrammierung 5
B Socket Daten empfangen funktioniert nicht richtig - wo liegt der Fehler? Netzwerkprogrammierung 7
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
E Daten kommen anders an als gesendert ?! Netzwerkprogrammierung 6
S HttpURLConnection POST splittet Daten in zwei Pakete Netzwerkprogrammierung 9
F POST-Daten sende Netzwerkprogrammierung 3
E HTTPS Debuggen (verschlüsselte Daten anzeigen)? Netzwerkprogrammierung 12
N Per POST -Methode Daten an den Web-Server übertragen. Netzwerkprogrammierung 9
Iron Monkey Große Daten ins Vector füllen Netzwerkprogrammierung 4
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
D Daten, die mit PHP erzeugt werden, mit Java auslesen Netzwerkprogrammierung 8
M Ethernet Daten abfangen Netzwerkprogrammierung 13
F Daten senden und empfangen mit Applet Netzwerkprogrammierung 8
I Problem beim empfangen von Daten (Zahlen) Netzwerkprogrammierung 7
S Daten per GET-Methode Netzwerkprogrammierung 2
H Server soll Daten schicken, aber wie? Netzwerkprogrammierung 47
M Socket schließt bevor Daten komplett geladen Netzwerkprogrammierung 5
C Flash Daten an Java senden, wie serialisieren? Netzwerkprogrammierung 3
E rxtx serielles senden von Daten Netzwerkprogrammierung 2
D Socket, Daten über BufferedWriter senden Netzwerkprogrammierung 18
G TCP Verbindung überprüfen OHNE daten zu verschicken Netzwerkprogrammierung 11
M Daten übers Netz verschlüsselt übertragen? Wie? Netzwerkprogrammierung 18
J Post-Daten an URL schicken Netzwerkprogrammierung 2
U Image erzeugen aus empfangenen Daten Netzwerkprogrammierung 7
A Wie werden Daten versendet? "Crashcode" Netzwerkprogrammierung 4
D Frage: Buffered Reader --> Wie komm ich an die Daten (Byt Netzwerkprogrammierung 3
G unvollständige Daten: Http Client-Server-Kommunikation Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben