Problem mit Dateidownload

Status
Nicht offen für weitere Antworten.

mylord

Mitglied
Hallo Leute,

ich habe ein Programm geschrieben, dass mit einem PHP Script kommuniziert. Und zwar sendet das Programm per POST ein Request an das Script und bekommt darauf eine XML Antwort, die dann weiter verarbeitet werden kann. Doch nun habe ich folgendes Problem:

Ich habe das Programm unter Mac OSX entwickelt. Dort läuft es sehr schnell und auch zuverlässig. Auch unter dem VMWare Windows XP gibt es keinerlei Probleme, aber auf meinem Windows XP Desktop will das Programm nicht immer so, wie ich es will. Wie gesagt lädt das Programm Daten herunter, es sollten nur die reinen XML Daten sein, die ich weiter verarbeiten will. Aber ab und zu landet der ganze response Header zusätzlich noch im Speicher. Ich kann mir das nicht erklären. Hat von euch jemand eine Idee?

Ich verwende diese Methode, um die Daten zu laden:

Code:
	private String sendQuery(String data){
		List<String> response = new ArrayList<String>();

		try {
			URL url = new URL(URL);
			URLConnection conn = url.openConnection();
			conn.setDoOutput(true);
			
			OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
			
			wr.write(data);
			wr.flush();
			
			InputStreamReader inStream=new InputStreamReader(conn.getInputStream(),"ISO-8859-1");
			BufferedReader rd = new BufferedReader(inStream);
			
	        String line;
	        while ((line = rd.readLine()) != null) {
	        	line=stripNonValidXMLCharacters(line);
	            response.add(line+"\n");
	        }
	        wr.close();
	        rd.close();
	        dataCache="";

		} catch (Exception e) {
			e.printStackTrace();
		}	
		
		return writeData(response);
	}
 
T

tuxedo

Gast
mylord hat gesagt.:
Aber ab und zu landet der ganze response Header zusätzlich noch im Speicher.

Kannst du das vielleicht noch ein bisschen genauer erklären? Meinstz du dem HTTP Header der Antwort? Und welchen Speicher meinst du genau?
 

mylord

Mitglied
Ja, genau, ich meine den HTTP Header der Antwort. Also Quasi genau das, was ich zu sehen bekommen würde, wenn ich den Content der Seite manuell mittels Telnet auf port 80 abfragen würde. Alles, was der Server liefert, steht dann am Ende in der Datei drinn.

Okay, ich gebe ja zu, dass der Begriff Speicher etwas unglücklich gewählt ist. Ich habe eine Liste List<String> response, in die die Antwort geschrieben werden soll. In genau dieser Liste taucht bei dem Rechner dann der Header auf.
 
T

tuxedo

Gast
Das ist sehr mysteriös. Weil normalerweise muss man den Header extra auslesen. Eigentlich kommt man ja nur so ran:

Code:
String myHeaderField = urlConn.getHeaderField("myHeaderField");
 

mylord

Mitglied
Ja, genau deshalb kann ich das Problem auch nicht verstehen. In einer Datei steht bei mir z.B. folgendes drinn:

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xml><login><login_status>ok</login_status><login_key>jjc5KpjYDibRwb4JCiXChaQva3Io3IBhWPu9PIn2</login_key></login><request><request_status>none</request_status><new_id>0</new_id></request></xml>

Da hat alles wunderbar funktioniert. Aber an einer anderen Stelle bekomme ich z.B. diese Antwort:


Code:
HTTP/1.1 200 OK
Date: Wed, 10 Oct 2007 08:21:29 GMT
Server: Apache
X-Powered-By: PHP/5.2.4_pre200708051230-pl2-gentoo
Content-Length: 176
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
Content-Type: text/xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<xml><login><login_status>ok</login_status></login><request><request_status>none</request_status><new_id>0</new_id></request></xml>

Was ich noch festgestellt habe, ist dass das abrufen der zweiten Datei, bei der der Fehler auftaucht, deutlich länger (10 sek) dauert, als bei der ersten. Ich habe den Datenfluss mir mit einem (der verbotenen ;) ) "Hackertools" angeschaut. Wenige ms nach dem Request liefert der Webserver die Daten aus, aber das Programm merkt erst 10 sek später, dass es etwas bekommen hat.
 
T

tuxedo

Gast
Hmm, hast du mal weiter gegoogelt oder im Sun-Java-Forum geschaut?

Ich mache mit meinem jPMdbc JDBC Treiber ähnliches. Ich schicke Anfragen wie POST an ein PHP-Script und lese die Antwort wieder aus. Allerdings nehme ich einen nackigen InputStream und keinen Reader.
Und bei mir ist der "Fehler" noch nicht aufgetaucht, egal wie schnell die Antwort vom Server zurück kommt.

- Alex
 

mylord

Mitglied
Ja, ich hab schon in einigen Foren gesucht, bin da aber leider nicht weiter gekommen. Ich habe aber auch schon ganz stumpf sleep(20) in das Script reingeschrieben, aber das resultat war das gleiche. An den stellen, die normalerweise glatt durchlaufen, ging das Programm auch durch, aber an den stellen, wo der DL schon vorher fehlgeschlagen ist, ist es nach der änderung wieder passiert.

Mir ist übrigens aufgefallen, dass es immer die gleiche XML Antwort ist, bei der der Header mitgenommen wird.
 
T

tuxedo

Gast
Hmm, und du bist dir sicher dass das NUR mit einem reellen Windows XP als Client passiert? Hast du mal genau die XML-Antwort versucht auf dem Mac oder dem virtuellen WinXP zu produzieren?

- Alex
 

mylord

Mitglied
Ja, die gleichen Antworten kommen andauernd bei allen Clients. Mit einem reelen XP Client meinte ich, dass mir nur ein Rechner bekannt ist, bei dem der Fehler auftritt.

Und nun bin ich etwas weiter gegangen, ich habe die Firewall des Rechners komplett runtergeworfen (Outpost Security Suite) und nun funktioniert die Software auch auf dem System. Keine ungewollten Header in den XML Dateien.

Aber die Frage ist natürlich, woran das jetzt liegt. Gestern Abend habe ich das Programm das erste Mal unter XP gestartet, ich habe alles mögliche ausprobiert, die Firewall deaktiviert, etc. nicht hat geholfen. Nur das komplette deinstallieren. Hast du eine Idee, wieso das so ist / war?
 
T

tuxedo

Gast
Naja, ich hab die Erfahrung gemacht dass Firewalls (ZoneAlarm und Co.) die "lustigsten" Phänomene produzieren. Ich hab mittlerweile nur noch die Windows eigene Firewall aktiv. Die reicht für all meine System auch aus, sitze mit jedem Rechner mindestens hinter einem Router der mich abschirmt.

Noch ne "lustige" Anekdote:
Der Cisco VPN Client, wie ihn viele Unis und Firmen einsetzen, verursacht Fehler in Double und Float-Werten. Nicht nur in Java. Bemerkt hab ich das als ich an der Hochschule eine 3D Simulation geschrieben hab und ich immer "NaN" als Fehler bekommen hab. War als einzigster mit dem Laptop via VPN verbunden... VPN an: Fehler da. VPN aus: Fehler weg. Mein Prof ist aus allen Wolken gefallen und hat's auf seinem System reproduzieren können. War schon ne krasse Sache. Aber back-to-topic

Normalerweise müsstest du mit Wireshark und Co. aber das Firewallverhalten isolieren können...

- Alex
 

mylord

Mitglied
Naja, ich habe auf meinem Desktop Rechner erst seit gestern wieder XP drauf. Hatte vorher mein Glück 5 Wochen lang mit Vista probiert *kotz*. Da hatte ich garkeine Firewall drauf, habe dafür aber mein Hardwareteil so dermaßen hochgeschraubt, dass es garnicht mehr ging. Ich wollte eben nicht, dass Vista evtl. etwas nach außen schickt. Es gab nur eine einzige Möglichkeit: Der Weg über einen Socks Proxy und der war auch nur so eingestellt, dass von mir bekannte IP Adressen akzeptiert wurden. Ich hatte eigentlich gehofft, dass ich auf diese krasse Einstellung unter XP verzichten kann und stattdessen einer SW Firewall traue, die zumindest verhindert, dass irgendein Müll von meinem Rechner in die weite Welt des WWW kommt. Ich weiß ja nicht, was in den ganzen binary Programmen ist, die ich unter Windows laufen lasse.
 
T

tuxedo

Gast
Da kann man ja manisch depressiv werden wenn man sich so abschottet ;-)

Bevor ich fragwürdige Programme durch ne Firewall kastriere such ich mir doch lieber vertrauenswürdige Software, oder?

Oder du nimmst halt nen "gescheiten" Socks-Proxy der das macht was er soll, und nicht irgendwelche Header verstümmelt und in die Nutzdaten mit einfließen lässt ;-)
 

mylord

Mitglied
Naja, das System brauche ich eh fast nur, um damit zu Programmieren. Und die Server, auf dennen ich arbeite, sind eh mit VPN an der Innenseite der HW Firewall angebunden.

Ja, vertrauenswürdige Anwendungen... Was ist denn schon vertrauenswürdig? OpenOffice, weil ich vor 4 Jahren mal daran mitgeschrieben habe? Oder Photoshop? Ich weiß ja nicht, was Adobe aus meinem System herausschmuggelt, wenn ich es nutze. Und bei Vista gab es zu der Zeit, als ich es aufgesetzt habe, garkeine Firewall. Deshalb auch die abschottung.

Den Cisco VPN Client hatte ich zu meinen Windows Zeite auch auf meinem Notebook. Dort hatte ich auch wirklich krasse Probleme mit dem Zeugs. Sobald sich an den Netzwerkeinstellungen etwas geändert hat, musste ich den Client neuinstallieren (geändert = andere PCMCIA Karte eingesteckt). Die Zusammenarbeit mit einer SW Firewall (frag mich jetzt bitte nicht welche), hat sich der Client beim "negotiation" Vorgang aufgehängt und verursachte 100% CPU Last und zwar wirklich 100%, sodass du absolut nichts machen konntest.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
M Netty - TCP Problem Netzwerkprogrammierung 4
L Socket Problem mit Server Netzwerkprogrammierung 1
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
M Socket CDI, Websocket reference Problem ! Netzwerkprogrammierung 2
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
G apache httpClient Problem. Netzwerkprogrammierung 5
H Problem mit ObjectStreams Netzwerkprogrammierung 3
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Maxim6394 Problem mit Socks5 Implementierung Netzwerkprogrammierung 0
C Handle Connection Problem Netzwerkprogrammierung 3
E HttpUrlConnection Cookie Problem Netzwerkprogrammierung 0
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
A Socket Socket-Problem - Object wird nicht übertragen Netzwerkprogrammierung 3
R Problem beim Programmieren eines Chatprogramms Netzwerkprogrammierung 5
E einfaches Problem: Session-Handling bei Servlets Netzwerkprogrammierung 5
G Problem mit einem FileWatcher Netzwerkprogrammierung 7
T Socket Server starten Thread Problem Netzwerkprogrammierung 12
B Client/Server Connection Problem Netzwerkprogrammierung 2
G Problem mit STATIC-Verständnis Netzwerkprogrammierung 8
S Umstellung AS400 auf Postgre - Problem beim Arbeiten mit Metadaten Netzwerkprogrammierung 2
J Facelets Include Rendered Problem Netzwerkprogrammierung 2
J Socket Problem mit C++/Java Netzwerkprogrammierung 20
P Problem mit Datagram-Sockets Netzwerkprogrammierung 2
G Socket NIO2 Problem mit AsynchronousSocketChannel beim Schließen Netzwerkprogrammierung 3
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 7
B Socket Problem mit Netzwerkchat Netzwerkprogrammierung 21
D RMI Problem beim shutdown von verteilter CORBA-Anwendung Netzwerkprogrammierung 6
Maxim6394 ipv6 Problem Netzwerkprogrammierung 2
Maxim6394 Proxyserver Performance Problem Netzwerkprogrammierung 11
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
C Socket Problem mit ObjectInput/OutputSream Netzwerkprogrammierung 5
B RMI und Problem mit rmic-Tool Netzwerkprogrammierung 3
C FTP storeFileStream Problem Netzwerkprogrammierung 3
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
D JavaMail - Mailsabrufen Problem (imap) Netzwerkprogrammierung 12
J HTTP Übersetzung yahoo babelfish - Zeichensatz-Problem Netzwerkprogrammierung 6
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Problem beim Datenempfang Netzwerkprogrammierung 2
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
N NIO Problem beim speziellen Behandeln von einzelnen Benutzern Netzwerkprogrammierung 13
D Thread problem Netzwerkprogrammierung 3
T Servlets JSP: Tomcat Problem Netzwerkprogrammierung 4
K Client - Server Problem Netzwerkprogrammierung 16
T RMI Problem Client-Server Netzwerkprogrammierung 2
P RMI Stub Problem Netzwerkprogrammierung 3
D Socket UDP Übertragungs Problem Netzwerkprogrammierung 7
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 2
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 6
D Problem mit ObjectInputStreams Netzwerkprogrammierung 10
D Socket Problem mit InputStreamReader Netzwerkprogrammierung 3
N CRC32 CheckSum Problem bei UDP Netzwerkprogrammierung 2
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
P RMI Problem Netzwerkprogrammierung 4
I Problem bei Outputstreamerzeugung in anderer Klasse als Socket Netzwerkprogrammierung 5
S Socket Problem mit Objektübertragung Netzwerkprogrammierung 16
Shoox Reader / Writer Problem Netzwerkprogrammierung 2
S Problem mit 2 Serversockets unter Win XP Netzwerkprogrammierung 7
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
M RMI - Connection Problem Netzwerkprogrammierung 7
J Socket Client - Server Problem Netzwerkprogrammierung 4
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
E HTTP Problem beim Auslesen von Websiten Netzwerkprogrammierung 6
T Problem bei Findung der richtigen Architektur Netzwerkprogrammierung 3
AlexSpritze Authentication Problem bei WebServices Netzwerkprogrammierung 4
J Socket Problem -Proxies Netzwerkprogrammierung 2
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
F Konzept Problem Netzwerkprogrammierung 12
G NIO Sockets Architektur Problem Netzwerkprogrammierung 2
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
J Client server problem Netzwerkprogrammierung 3
S Problem bzgl. Sockets / Server-Client-Struktur Netzwerkprogrammierung 3
W RMI Problem Netzwerkprogrammierung 4
M Problem mit Server Netzwerkprogrammierung 5
N Socket Java server c# client problem Netzwerkprogrammierung 7
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
R RMI Hibernate Problem Netzwerkprogrammierung 4
Z RMI Problem Netzwerkprogrammierung 11
F RMI problem mit RMI Netzwerkprogrammierung 3
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
H Log4j SocketAppender Problem Netzwerkprogrammierung 2
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
P Problem mit JOscarLib Netzwerkprogrammierung 6
0din SMTP Client - readline problem Netzwerkprogrammierung 4
C komisches Problem / ObjectInputStream erstellt sich nicht Netzwerkprogrammierung 5
W vista / win server 2003 netzlaufwerk problem Netzwerkprogrammierung 4
W Problem mit HTTP-Dateiübertragung Netzwerkprogrammierung 6
E Problem: netbeans 6.5 und webanwendung Netzwerkprogrammierung 6
C Problem mit Übertragung einer Klasse in RMI Netzwerkprogrammierung 10

Ähnliche Java Themen

Neue Themen


Oben