Per POST -Methode Daten an den Web-Server übertragen.

Status
Nicht offen für weitere Antworten.
N

Nur ein Gast

Gast
Hallo,
ich möchte von einem Web-Server ein zur Laufzeit erstelltes Log-File runterladen und abspeichern ->
Das Logfile wird erzeugt, wenn ich den Zeitraum per HTML Formular eingebe und die Daten mit dem Submit Button abschicke. Genau das will ich jetzt mit Java automatisieren.
Ich bin schon soweit mich auf den Server zu verbinden und das aktuelle LogFile auf Platte zu speichern. Das Logfile welches ich schon erreiche ist aber nur das aktuelle von 0:00 bis jetzt. Auf das komplette gestrige habe ich so keinen Zugriff. Diese wird erst zum Abfragezeitpunkt generiert und übertragen.
Ich weiß nun nicht, an welchem Punkt ich Ansetzen soll, bzw. wann der Webserver von mir welche Daten erwartet.

Danke schön im Voraus

Nur der Gast
 

pinhead84

Aktives Mitglied
Kannst du dein Logfile-Skript auf dem Server nicht anpassen, dass auch GET-Anfragen verarbeitet werden? - Dann könntest du die Parameter direkt an die URL hängen. Das macht aber nur bei wenigen Parametern Sinn.

Aber um auf deine Frage zu kommen: Ein Beispiel einer POST-Anfrage findest du hier.

Code:
  // Daten an das CGI-Skript schicken
  cgiConnection.setDoOutput(true);
  URLoutput = new DataOutputStream(cgiConnection.getOutputStream());
  URLoutput.writeBytes(data+"\n");
  URLoutput.close();

In obigem Beispiel muss eine Option für die Kommunikation mit dem Server gesetzt werden:

cgiConnection.setDoOutput(true);

Mit setDoOutput(boolean) wird eingestellt, ob eine Ausgabe vom Client bei der Kommunikation mit dem Server erfolgt. Per Voreinstellung ist dieses Flag auf false gesetzt, d. h., es ist von Client-Seite keine Ausgabe zum Server möglich. Bei der Verwendung der POST-Methode müssen die Daten über einen OutputStream an den Server geschickt werden. Deshalb ist ein vorheriger Aufruf von setDoOutput() notwendig.

Bei POST-Anfragen müssen die Parameter im Body des HTTP-Requests übertragen werden, siehe hier. Zum Beispiel:

Code:
URLoutput.writeBytes("key1=value1&key2=value2\n");
 
G

Guest

Gast
pinhead84 hat gesagt.:
Kannst du dein Logfile-Skript auf dem Server nicht anpassen, dass auch GET-Anfragen verarbeitet werden? - Dann könntest du die Parameter direkt an die URL hängen. Das macht aber nur bei wenigen Parametern Sinn.

Der "Server" ist eine proprietäre Steuerung, auf der ich nichts ändern kann.
Muß aber mal ausprobieren, ob der Server nicht auch eine Get Anfrage beantwortet.

Die kann ich doch einfach an die URL anhängen, mit der ich die Seite aufrufe...

Der Gast
 
S

Schon wieder der Gast

Gast
Hier mal der Auszug aus dem per Webbrowser gezogenen Logfile, das auch das Eingabeformular zur verfügung stellt

Code:
<form action="/func/setup/getlog" method=POST name=thelog>
<TR><TD>Start date</TD><TD><INPUT TYPE=text name=startdate value="2008-09-11 00:00:00"></TD></TR>
<TR><TD>End date</TD><TD><INPUT TYPE=text name=enddate value="2008-09-12 00:00:00"></TD></TR>
<input type=hidden name=dummy value=1221121089><INPUT TYPE=submit name=action value="Search"></FORM>

Verstehe ich es denn richtig, das der Webserver, nachdem ich mich autorisiert habe und er mir die Seite mit dem Formular anzeigt, auf die Rücksendung dieses HTML Codes wartet ???
Und wenn ich ihm dann diese "Webseite" zurückschicke, schickt er mir als Antwort darauf die angeforderte Seite, die mit dem Buffered Reader dann wieder abfangen kann und wegspeichern.

Aber wie soll ich mit Java diesen Code erzeugen, wobei das datum ja auch "Variabel" sein muß, sprich das Datum wird von einer anderen methode generiert und dann als String dort eingefügt.

Habe aus nem freien Java Buch (Java ist auch eine Insel) folgendes ->


Daten nach der POST-Methode versenden

Die Klasse URLConnection bietet die schon bekannte Methode getOutputStream() an, die eine Verbindung zur Eingabe des serverseitigen Programms möglich macht (POST-Methode):

// CGI-Script schickt die Daten zurück
PrintStream o = new PrintStream( connection.getOutputStream() );
o.println( data );
o.close();



Aber ich verstehe nicht, wie und wo ich nun was eintragen könnte

Schon mal Danke
der Gast ohne Namen ;-)
 

pinhead84

Aktives Mitglied
Wie 'FArt' schon schrieb, sollte es mit dem Apache-HttpClient einfacher gehen, als ich es beschrieben hatte:

Code:
       PostMethod post = new PostMethod("http://jakarata.apache.org/");
        NameValuePair[] data = {
                new NameValuePair("user", "joe"),
                new NameValuePair("password", "bloggs")
        };
        post.setRequestBody(data);
        // execute method and handle any error responses.
        ...
        InputStream in = post.getResponseBodyAsStream();
        // handle response.


In deinem Falle müsstest du beim POST-Request die URL eingeben, die im action-Attribut des Formulars steht, sowie die Eingabefelder als NameValuePair:
Code:
       PostMethod post = new PostMethod("http://www.meinserver.de/func/setup/getlog");
        NameValuePair[] data = {
                new NameValuePair("startdate", "2008-09-11 00:00:00"),
                new NameValuePair("enddate", "2008-09-12 00:00:00"),
                new NameValuePair("dummy", "1221121089"),
                new NameValuePair("action", "Search")
        };
 
G

Gast

Gast
Aber wenn ich das nun einfüge und kompiliere, sagt er mir

cannot find symbol class PostMethod
cannot find symbol class NameValuePair


Habe die Jakarta Jar Archive aber ins Projekt mit eingebunden und ein
Code:
import org.apache.http.client.*;
hab ich auch drin :-(

Der Gast aus dem Osten :autsch:
 

pinhead84

Aktives Mitglied
Eclipse / Netbeans sollten dir die nötigen Importe automatisch anzeigen, wenn du die HTTP-Components korrekt eingebunden hast.

Wie ich gerade sehe funktioniert der Beispielcode nur mit Version 3.1 der HTTP-Components, siehe hier. Prüfe also mal, welche Version du heruntergeladen hast.

Version 4 (Beta) ist anscheinend nicht abwärtskompatibel, siehe API. Wenn du diese Version verwenden willst, schau dir eines dieser Beispiele an. Im Zweifelsfalle würde ich aber eher zur stabilen 3er Version raten.
 
G

Gast

Gast
Jawohl, das wars, hab jetzt die 3.1 drauf und die wirft zumindest beim compilieren keine Fehler mehr.
Das Programm läuft zwar noch nicht wie gewünscht (eigentlich läuft es gar nicht) aber ich hab ja noch 2 Wochen Zeit.
Jetzt meckert er, das er eine Methode nicht findet, genauen Fehlertext muß ich durcharbeiten, aber falls es wieder hängt melde ich mich einfach noch mal...wenn ich darf :roll:
Evt. sollte ich mich mal im Forum anmelden, immer nur als Gast ist irgendwie doof :autsch:

Gruß
Der "Noch" Gast
 
G

Guest

Gast
Ich noch mal...
Was hat das hier für eine Funktion, weil die kann ich nämlich nicht in den Code aufnehmen, dann schmeißt er Fehler beim compilieren ->
Code:
HttpClient client = new HttpClient();


Gast hat gesagt.:
Jawohl, das wars, hab jetzt die 3.1 drauf und die wirft zumindest beim compilieren keine Fehler mehr.
Das Programm läuft zwar noch nicht wie gewünscht (eigentlich läuft es gar nicht) aber ich hab ja noch 2 Wochen Zeit.
Jetzt meckert er, das er eine Methode nicht findet, genauen Fehlertext muß ich durcharbeiten, aber falls es wieder hängt melde ich mich einfach noch mal...wenn ich darf :roll:
Evt. sollte ich mich mal im Forum anmelden, immer nur als Gast ist irgendwie doof :autsch:

Gruß
Der "Noch" Gast
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Probleme beim senden von Daten per POST Methode an PHP Scrip Netzwerkprogrammierung 5
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
O HTTP Bilderübergabe per POST Netzwerkprogrammierung 1
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
N Post u Head Request an Server Netzwerkprogrammierung 4
F HTTP POST - "Already connected" Netzwerkprogrammierung 0
C Android: Json-POST Request zu REST Webservice Netzwerkprogrammierung 2
nrg FileUpload HTTP POST Netzwerkprogrammierung 5
R HTTP Post HTML Netzwerkprogrammierung 5
S HTTP Probleme mit POST-Befehl Netzwerkprogrammierung 2
D daten per post senden Netzwerkprogrammierung 3
B Post Request in Java Netzwerkprogrammierung 11
C HTTP POST Connect Netzwerkprogrammierung 9
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 2
I HTTP Post aus html in Java einlesen - Problem Netzwerkprogrammierung 6
T HTTP POST Request Netzwerkprogrammierung 3
C HTTP Studienarbeit Kommunikation via HTTP mit POST zwischen Server und Client Netzwerkprogrammierung 7
ARadauer POST Request absetzen.. Netzwerkprogrammierung 3
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
T HttpClient - Senden via Post Netzwerkprogrammierung 12
S HttpURLConnection POST splittet Daten in zwei Pakete Netzwerkprogrammierung 9
hdi POST Request (HttpConnection) Netzwerkprogrammierung 6
M Http POST liefert kryptischen Content Netzwerkprogrammierung 4
F POST-Daten sende Netzwerkprogrammierung 3
B Wie HTTP GET/POST Anfrage versenden? Netzwerkprogrammierung 7
J 403 error bei POST request Netzwerkprogrammierung 3
J Post-Daten an URL schicken Netzwerkprogrammierung 2
E upload progress bei einem http file post Netzwerkprogrammierung 5
M erst POST dann Http-Request über URLConnection Netzwerkprogrammierung 3
G.I.Joe Datei per POST übertragen Netzwerkprogrammierung 2
J HTTP-POST-Request mit Anhang über Socket Netzwerkprogrammierung 2
E In Webseite einloggen/ GET, POST an PHP-Script übergeben Netzwerkprogrammierung 2
B totale HTTP/1.0 Verwirrung bei POST Netzwerkprogrammierung 5
U Webformular ausfüllen ( Post ) Netzwerkprogrammierung 7
S object via post auf servlet send und weiter bearbeiten Netzwerkprogrammierung 11
A daten an php script per post senden und ausgabe einlesen Netzwerkprogrammierung 6
O Per POST automatisch auf Website einloggen... Netzwerkprogrammierung 9
C POST-Parameter aus HTML-Script lesen Netzwerkprogrammierung 1
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
D WebSocket send Methode verschickt nichts! Netzwerkprogrammierung 3
J Rückgabewert bei Run()-Methode Netzwerkprogrammierung 9
F getSource Methode wird als Bot erkannt Netzwerkprogrammierung 8
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
Dit_ RMI RMI-Server und gleichzeitiger Aufruf einer Methode Netzwerkprogrammierung 14
D Client Server Problem, Methode readline() löst SocketException "Connection reset" aus Netzwerkprogrammierung 8
L JavaScript Methode mit Java aufrufen Netzwerkprogrammierung 40
S Blockierende RMI Methode Netzwerkprogrammierung 3
S Daten per GET-Methode Netzwerkprogrammierung 2
A RMI: Wo wird die Methode ausgeführt? Netzwerkprogrammierung 9
A Methode zum ermitteln des DHCP-Servers & DNS-Servers? Netzwerkprogrammierung 8
C RMI: Problem beim Aufruf einer Methode. Falsch gecastet? Netzwerkprogrammierung 8
T finlalize Methode vom Server wird nicht aufgerufen Netzwerkprogrammierung 4
N Server accept-Methode zeitlich begrenzen Netzwerkprogrammierung 2
D beste Methode für Datenübertragung ? Netzwerkprogrammierung 1
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
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 HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
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

Ähnliche Java Themen

Neue Themen


Oben