Apache HTTPClient Server log ausgeben ?!

MoinMoin

Mitglied
Hallo liebe Community,

ich habe folgendes vor :

Ich habe einen HTTPClient der sich mit einem Webservice verbindet und dort arbeitet.

Ich würde gern wissen ob es möglich ist, dem Benutzer des Clients die Möglichkeit zu geben, Informationen über den Fortschritt zu geben.
Z.B. :
- Connection to ......
- Login....
- Sending Data....
- Deleting requested Item.....
- Success
- closing Connection...
etc....

Was brauche ich dafür ? Welches Tutorial muss ich durcharbeiten? Protokoll oder Log ?

Lieben Gruß
 

gp

Aktives Mitglied
Im einfachsten Fall das ganze zur Laufzeit über die Konsole ausgeben:
System.out.println("...");

Die Frage ist, was du erwartest? HTTP funktioniert recht simpel: Anfrage schicken, Antwort bekommen, Verbindung schließen. Das heißt: in der Anfrage sind auch die Zugriffsdaten enthalten, das ist dann alles nur ein Schritt.

Vielleicht verstehe ich dich auch nicht - bin ja kein Hellseher :)

Günter
 

MoinMoin

Mitglied
Danke erstmal für die Antwort.

Ich habe folgenden Client:

Java:
	public static void main(String[] args) throws Exception{
	       DefaultHttpClient httpclient = new DefaultHttpClient();
	        try {
	            HttpHost target = new HttpHost("ADRESSE", 80, "http");
	        	HttpEntity entity = null;
	            HttpPost req = new HttpPost("WEBSERVICE");
	            	            	            
	            String username = "USERNAME";
	            String password = "PASSWORD";
	            String authorizationHeaderValue = username + ":" + password;
	            BASE64Encoder encoder = new BASE64Encoder();
	            authorizationHeaderValue = "Basic " + encoder.encode(authorizationHeaderValue.getBytes());
	            Header authorizationHeader = new BasicHeader("Authorization", authorizationHeaderValue);
	            req.addHeader(authorizationHeader);
	            
	            String soapActionHeaderValue = "http.....................";
	            Header soapActionHeader = new BasicHeader("SOAPAction", soapActionHeaderValue);
	            req.addHeader(soapActionHeader);
	            
	            InputStream is = com.generali.test.Main.class.getClassLoader().getResourceAsStream("templateRequest");
	            String templateString = IOUtils.toString(is, "UTF-8");
	            
	            
	            FileFilter filter = new FileNameExtensionFilter("Excel-Datei", "xls");
	            
	            // JFileChooser zum öffnen einer bestimmten Excel-Tabelle
	            JFileChooser chooser = new JFileChooser();
	            chooser.setCurrentDirectory(new File("D:/"));
	            chooser.addChoosableFileFilter(filter);	            
	            chooser.showOpenDialog(null);
	            	
	            	Workbook workbook = Workbook.getWorkbook(chooser.getSelectedFile()); 
	            	Sheet sheet = workbook.getSheet(0);              	
	            
	            //Geht das Excel Dokument durch und nimmt die Werte aus der ersten und dritten Spalte...
	    		for (int i = 3; i < sheet.getRows(); i++) {
	    		// ...solange es Zeilen im Excel Dokument gibt
	    			List<AbfrageObjekt> objekte = new ArrayList<AbfrageObjekt>();
	    		AbfrageObjekt ao = new AbfrageObjekt();
	    		
	    		// Wenn die VorgangsID in der 1.Spalten liegt
	    		ao.setVorgangsID(sheet.getCell(0, i)); 
	    		ao.setSchluessel(sheet.getCell(2, i)); 

	    		objekte.add(ao);	            
	    		
	    	
	    		// Übergibt die Werte an hisVorgangsIdentifikation und referenzschluesselMeldung
	            Cell hisVorgangsIdentifikation =  ao.getVorgangsID(); 
	            Cell referenzschluesselMeldung = ao.getSchluessel();
	            String HisVorgangsIdentifikation = hisVorgangsIdentifikation.getContents();
	            String ReferenzschluesselMeldung = referenzschluesselMeldung.getContents();
	            System.out.println("|||||||||||||||||||||||||||||||||||||||||||||||||||");
	            System.out.println("ID lautet: " + HisVorgangsIdentifikation + " Schlüssel lautet: " + ReferenzschluesselMeldung );
	            System.out.println("|||||||||||||||||||||||||||||||||||||||||||||||||||");

	            String referenzschluesselLoeschung = "L1";
	            String content = MessageFormat.format(templateString, HisVorgangsIdentifikation, ReferenzschluesselMeldung, referenzschluesselLoeschung);
	            
	            StringEntity stringEntity = new StringEntity(content);
	            stringEntity.setContentType("application/xml");
	            req.setEntity(stringEntity);

	            entity = req.getEntity();
	            if (entity != null) {
	                System.out.println(EntityUtils.toString(entity));
	            }

	            System.out.println("executing request to " + target);
	            HttpResponse rsp = httpclient.execute(target, req);
	                      

	            System.out.println("----------------------------------------");
	            System.out.println(rsp.getStatusLine());
	            Header[] headers = rsp.getAllHeaders();
	            for (int j = 0; j < headers.length; j++) {
	                System.out.println(headers[j]);
	            }
	            System.out.println("----------------------------------------");

	            entity = rsp.getEntity();
	        
	                  
	            if (entity != null) {
	                System.out.println(EntityUtils.toString(entity));
	            }
	    		}
	        
	        	
	        } finally {
	        	// When HttpClient instance is no longer needed,
	        	// shut down the connection manager to ensure
	        	// immediate deallocation of all system resources
	        	//JOptionPane.showMessageDialog(null, "Die Objekte wurden erfolgreich gelöscht !");
	        	httpclient.getConnectionManager().shutdown();
	 	

	        }        
}
}

Der connected sich also zum Webservice, schickt den Header mit USERNAME und PASSWORD... loggt sich dort ein.. liest dann Werte aus einer Excel-Tabelle und übergibt diese als HisVorgangsIdentifikation und ReferenzschluesselMeldung... Jetzt sucht er über den Webservice in einer Datenbank nach diesen Einträgen und löscht diese soweit sie vorhanden sind.

Ich möchte dem Benutzer dieses Clients jetzt die Möglichkeit geben das ein Fenster erscheint, worin steht was gerade passiert (wie oben beschrieben)

Günter du sagst, dies passiert ja sowieso im Hintergrund bei HTTP. Genau diese Kommunikation zwischen Client und Server möchte ich dem User ausgeben lassen. Nicht in der Konsole, sondern in einem separaten Fenster (JOptionPane oder ähnliches).

Inwieweit kann ich dieses umsetzen.. Habe in Sachen Client/Server kommunikation keine Erfahrungen. Bin noch Student und diese Themen werden denke ich erst noch kommen. Da ich aber gerade diese Aufgabe in einem Praktikum bekommen habe, ist es für mich eine gute Möglichkeit, mich zu beweisen.

Bin für jede Hilfe Dankbar !

Liebe Grüße
 

gp

Aktives Mitglied
Ich kann mich aktuell nicht durch den Quellcode wühlen - der ist mit meinem Tapatalk-Client nicht lesbar.

Die Lösung ist nicht trivial und da ich kaum mit Swing programmiere, habe ich auch nichts fertiges.

Im Prinzip gibt es 3 Threads:
Dein Hauptprogramm
Die Kommunikation mit dem Server
Das Ausgabefenster

Also schreibt der Kommunikationsteil erst mal die Meldungen weg, in einen Vector oder FiFo-Buffer.
Das Ausgabefenster überwacht diesen Speicher und schreibt neue Zeilen auf den Bildschirm.

Das hört sich einfacher an als es ist. Die Prozesse müssen gestartet, gestoppt und synchronisiert werden. Weniger eine Anfängeraufgabe :)

Vielleicht hat Swing ja entsprechende Klassen, die es einfacher machen. Such mal nach Observer.

Günter

Gesendet von meinem GT-P7501 mit Tapatalk 2
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
G apache httpClient Problem. Netzwerkprogrammierung 5
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 need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
K Login via apache httpclient Netzwerkprogrammierung 4
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
T Apache HttpClient & Default Headers Netzwerkprogrammierung 9
T apache HTTPClient einloggen Netzwerkprogrammierung 2
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
C HTTPS mit Apache HTTPClient Netzwerkprogrammierung 1
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
Nuiton FTP Apache Commons: FTPClient und Sicherheit Netzwerkprogrammierung 9
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
D Apache Mina Serial: Error Netzwerkprogrammierung 2
0 Apache Commons File Object bekommen Netzwerkprogrammierung 4
W HTTP Apache HttpComponents und GZIP Netzwerkprogrammierung 2
F Apache commons net SFTPClient Netzwerkprogrammierung 5
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Apache Solr doc & pdf Upload Netzwerkprogrammierung 8
C apache commons net ftp bei upload unvollständig Netzwerkprogrammierung 3
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
R Apache Mina - Hilfestellung Netzwerkprogrammierung 32
D Apache Mina und GWT Servlet Netzwerkprogrammierung 4
N SFTP apache keine Verbindungaufbau möglich Netzwerkprogrammierung 6
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
Kr0e Apache Mina -> await() Netzwerkprogrammierung 30
B Tomcat Apache Server Netzwerkprogrammierung 6
J org.apache.http.auth.NTCredentials Netzwerkprogrammierung 2
A org.apache.commons http client in Netbeans einbinden Netzwerkprogrammierung 3
Kr0e Apache Mina Problem Netzwerkprogrammierung 2
G apache von außen zugänglich machen Netzwerkprogrammierung 5
1 Upload problem! org.apache.commons.net.ftp Netzwerkprogrammierung 3
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
A http request per socket an apache server Netzwerkprogrammierung 5
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
B HttpClient Netzwerkprogrammierung 2
M HTTP HTTPClient Authentication - Quickr Server Netzwerkprogrammierung 8
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
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
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
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 HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
F NodeJs-Server auf Firebase hosten ? Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
H HTTP Glassfish (v5) Application Server - Bibliothek zur Verfügung stellen Netzwerkprogrammierung 4
P TCP-Server Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben