Wie HTTP GET/POST Anfrage versenden?

Status
Nicht offen für weitere Antworten.
B

blackdrake

Gast
Hallo.

Ich studiere seit diesem Semester Java. Da ich nun mit den grundlegenden Sprachelementen einigermaßen anvertraut bin, möchte ich ein einfaches privates Delphi-Programm, das GET/POST Abfragen an einen Server sendet, in Java portieren, um es OS-Unabhängig zu machen.

Ich habe 3 Tage lang recherchiert und alles mögliche ausprobiert. Ich bekomme aber einfach das Package "org.apache.http.client.*" nicht deklartiert, das angeblich das Symbol PostMethod() enthalten soll.

Könnt ihr mir bitte ein kurzes Codetutorial geben, damit ich mit GET und POST arbeiten kann? (Anmerkung: Ich weiß, wie man mit GET und POST Umgeht, nur weiß ich nicht, was ich in Java und Eclipse machen muss)

Was muss beim Endanwender beachtet werden? Muss ich extern eingebundene "import" Packages an den Endanwender weitergeben?

Folgenden Code habe ich irgendwo gefunden:

Code:
package test;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.MultipartPostMethod;

import org.apache.http.client.*;

public class Test {
	
 
	public static void main (String[] args ) {
    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")
    };
}

}

Alle Import-Symbole sowie PostMethod() sind aber nicht verfügbar.

Ich habe versucht (mit Erfolg) folgende Packages einzubinden:

- commons-codec-1.3.jar (wird angezeigt in src->test-> ... installiert?)
- httpcore-4.0-beta3.jar (wird angezeigt in "Referenced Libaries")
- httpcore-nio-4.0-beta3.rar (wird angezeigt in "Referenced Libaries")
 
B

blackdrake

Gast
Das hilft mir leider gar nichts.

Genau an der Stelle, bei der das Tutorial nur sagt, dass man es tun soll, hakt es:

The first thing you need to do is get a copy of HttpClient and its dependencies. This tutorial was written for HttpClient 3.0. You will also need JDK 1.3 or above.

Once you've downloaded HttpClient and dependencies you will need to put them on your classpath. There is also an optional dependency on JSSE which is required for HTTPS connections; this is not required for this tutorial.

Da das mein erstes Mal ist, bei dem ich eine Library brauche, weiß ich ehrlichgesagt nicht, was ich in Java und/oder Eclipse machen soll.

Wie bekomme ich diese Libraries in meinen Classpath? Ich habe einige, auch die Dependence-Packages eingebunden, doch manche lassen sich nicht aufklappen. Manche sind importiert, manche in referenced libraries. Und die Symbole HttpClient und PostMethod sind unbekannt. Ich weiß nicht, was ich in Eclipse genau machen muss, damit ich alles korrekt einbinde.

Und wenn es mal funktionieren sollte, weiß ich mit dem Deployment auch nicht weiter. Soll ich etwa die ganze JUnit, alle Dependences und alle Apache-Core-Packages an den Endbenutzer weitergeben? Dann habe ich ja ein 50 MB package.
 

foobar

Top Contributor
Und wenn es mal funktionieren sollte, weiß ich mit dem Deployment auch nicht weiter. Soll ich etwa die ganze JUnit, alle Dependences und alle Apache-Core-Packages an den Endbenutzer weitergeben? Dann habe ich ja ein 50 MB package.
Nein, du mußt nur die apache-commons-* jars mit ausliefern, also all das was nicht Teil des JDKs ist und von deiner Application benötigt wird.

Da das mein erstes Mal ist, bei dem ich eine Library brauche, weiß ich ehrlichgesagt nicht, was ich in Java und/oder Eclipse machen soll.
In Eclipse Rechtsklick auf das Projekt => Properties => Java Build Path => Libraries => Add Jars oder Add External Jars wenn die Libs nicht Teil des Projekts sind.

Danach sind die Libs Teil des Classpaths und die kannst alle Pakete importieren.
 
B

blackdrake

Gast
Hallo. Ich habe nun alle JAR, die ich heruntergeladen habe, eingefügt. Es funktioniert leider immer noch nicht.

Ich habe ein Screenshot angehängt.
http://img185.imageshack.us/img185/2781/eclipseproblemiu6.jpg

Was ist falsch?

Also wenn in Java alle Drittanbietermodule so kompliziert zu installieren sind, wird es eine grausame Entwicklung.
:(

Wenn es dann mal funktioniert. Wie wird das Ausliefern genau gemacht? Einfach als JAR ausliefern und alle importierte Funktionen werden mitausgeliefert? Ist das JAR mit meinem Programm dann NUR noch VM-Abhängig?
 

foobar

Top Contributor
Also das Tutorial beschreibt HttpClient 3, dann solltest du auch die 3er jars runter laden: http://apache.mirroring.de/httpcomponents/commons-httpclient/binary/commons-httpclient-3.1.tar.gz
und die passenden Dependencies: http://hc.apache.org/httpclient-3.x/dependencies.html

Die Sourcejars und Junit brauchst du im Moment nicht. Danach machste dir in deinem Projekt einen lib Ordner und kopierst alle benötigten Jars in den Ordner.
Der Classpath muß dann wie oben beschrieben erweitert werden.

Exportieren kannste entweder mit ant, einem Exportwizard oder dem Fatjar-Plugin. Benutz mal die Suchfunktion dazu.
 
B

blackdrake

Gast
Hallo.

Vielen Dank, das war das fehlende Package. Die Sourcen und JUnit habe ich mal weggelassen. Diese dienen ja scheinbar nur zur Dokumentation und zum Debugging.

Nun habe ich folgenden Code:

Code:
package test;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;

public class Test {

	public static void main(String[] args) {
		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") };
		post.addParameters(data);
		
		// post.execute? möchte: abfrage senden, ergebnis als string erhalten sowie status code
	}

}

Wie führe ich jetzt aber die Abfrage aus? Ich suche vergeblich nach 1 Musterlösung für eine GET Abfrage und eine Musterlösung für eine POST Abfrage. Wenn ich das einmal habe, kann ich draus alles ableiten. Bei ApacheDoc sind zwar alle Klassen und Methoden aufgeführt, aber die Frage ist jetzt ja eine komplettlösung für eine ganze Abfrage, bei ich die exakten Befehle nicht kenne.

Gruß
blackdrake
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
nrg FileUpload HTTP POST Netzwerkprogrammierung 5
C HTTP POST Connect Netzwerkprogrammierung 9
C HTTP Studienarbeit Kommunikation via HTTP mit POST zwischen Server und Client Netzwerkprogrammierung 7
M Http POST liefert kryptischen Content Netzwerkprogrammierung 4
E upload progress bei einem http file post Netzwerkprogrammierung 5
M erst POST dann Http-Request über URLConnection Netzwerkprogrammierung 3
J HTTP-POST-Request mit Anhang über Socket Netzwerkprogrammierung 2
B totale HTTP/1.0 Verwirrung bei POST Netzwerkprogrammierung 5
H Datei mit Anhang via http "hochladen" Netzwerkprogrammierung 16
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
O HTTP Wer hilft mit meinem UTF-8 http Request ? Netzwerkprogrammierung 1
G localhost im Backend https vs. http Netzwerkprogrammierung 9
J Simple HTTP Framework (basierend auf expressjs) Netzwerkprogrammierung 1
M HTTP Http requests aufzeichnen Netzwerkprogrammierung 2
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
J HTTP Befehl via HTTP senden ohne Browser öffnen Netzwerkprogrammierung 3
F HTTP HTTP Rest Client mit TLS1.2 und selbst signiertem Zertifikat Netzwerkprogrammierung 2
M http request and response Netzwerkprogrammierung 0
M Verbindungszeit berechnen (TCP, HTTP/1.0, HTTP/1.1) Netzwerkprogrammierung 2
P HTTP Bild von einem Server per http kopieren Netzwerkprogrammierung 1
U HTTP XML vom Server abholen oder http Abfragen, Entscheidung treffen Netzwerkprogrammierung 0
P HTTP Server / Client Netzwerkprogrammierung 1
S HTTP-Requeste von Browser mit Java sniffen? Netzwerkprogrammierung 9
E HTTP java.lang.IllegalArgumentException: protocol = http host = null Netzwerkprogrammierung 1
M Server mit HTTP Netzwerkprogrammierung 9
H Sockets oder HTTP- Methoden? Netzwerkprogrammierung 3
B Socket HTTP-Request führt zu Endlosschleife Netzwerkprogrammierung 5
D HTTP nochne frage zu http requests Netzwerkprogrammierung 6
D HTTP Bräuchte hilfe mit Http Requests Netzwerkprogrammierung 6
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
F HTTP HTTP-Download: Dateien in einem Verzeichnis ermitteln Netzwerkprogrammierung 8
T HTTP Einen HTTP Server erstellen Netzwerkprogrammierung 20
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
Dit_ HTTP Einfache HTTP-Anfrage Netzwerkprogrammierung 6
T Socket Java HTTP-Proxy Netzwerkprogrammierung 3
A HTTP Zugriff auf http-Server - Error 400 Netzwerkprogrammierung 11
B HTTP JSESSIONID in Http(s)URLConnection loswerden! Netzwerkprogrammierung 13
E Socket HTTP-Server Netzwerkprogrammierung 6
D HTTP Java HTTP Kommunikation Netzwerkprogrammierung 9
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
O Http request Netzwerkprogrammierung 7
Tobse HTTP ServerSocket HTTP Netzwerkprogrammierung 4
I HTTP Datei Uploaden mit http und Sprache anpassen Netzwerkprogrammierung 7
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N Http Client Netzwerkprogrammierung 3
W Asynchroner HTTP Client / non-blocking I/O Netzwerkprogrammierung 2
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
L Body eines http Request auslesen Netzwerkprogrammierung 2
T HTTP Encoding von Http-Streams Netzwerkprogrammierung 2
K Ende eines HTTP Response/Request Netzwerkprogrammierung 6
D http request Netzwerkprogrammierung 11
Kr0e Simpler HTTP Stream server Test Netzwerkprogrammierung 3
K HTTP-Anfrage an einen Server wird nicht beantwortet Netzwerkprogrammierung 3
J org.apache.http.auth.NTCredentials Netzwerkprogrammierung 2
W Problem mit HTTP-Dateiübertragung Netzwerkprogrammierung 6
A org.apache.commons http client in Netbeans einbinden Netzwerkprogrammierung 3
G Http Client mit Redirect Enabled Netzwerkprogrammierung 2
G Sockets und HTTP: Ende des Datenempfangs erkennen Netzwerkprogrammierung 3
R HTTP Server Memory Leak? Netzwerkprogrammierung 6
G HTTP-Request InputStream-Problem Netzwerkprogrammierung 5
K optimale HTTP Downloads Netzwerkprogrammierung 15
G auf http-request antworten. Netzwerkprogrammierung 3
I http sniffer gesucht Netzwerkprogrammierung 10
G Socket + HTTP Header Netzwerkprogrammierung 2
R HTTP ServerThread Netzwerkprogrammierung 4
J HTTP GET? Netzwerkprogrammierung 6
C FTP vs HTTP Netzwerkprogrammierung 10
M HTTP-Response extrem fragmentiert Netzwerkprogrammierung 4
W HTTP-Upload Netzwerkprogrammierung 2
M HTTP response code: 401 ; ?aber im browser ist es abrufbar? Netzwerkprogrammierung 5
L Java HTTP Request Netzwerkprogrammierung 3
O Axis2 erstellt HTTP/1.1 anstatt HTTP/1.0 Netzwerkprogrammierung 3
B Fehler 401 bei http GET Netzwerkprogrammierung 2
S HTTP Request erstellen Netzwerkprogrammierung 2
B lange Strings in http-Request? Netzwerkprogrammierung 3
K http-download Netzwerkprogrammierung 12
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
m@nu Ende von Stream bei HTTP-Request Netzwerkprogrammierung 3
M RMI over HTTP Netzwerkprogrammierung 5
M HTTP Requests verarbeiten und Response senden mit Java Netzwerkprogrammierung 14
G HTTP Response mit Transfer-Encoding:chunked einlesen Netzwerkprogrammierung 4
D HTTP Request erstellen (Form Name übergeben!) Netzwerkprogrammierung 3
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
L http kommunikation mit und ohne multipart Netzwerkprogrammierung 4
L file upload / download über http Netzwerkprogrammierung 5
G HTTP Client :: Komme nicht über den Proxy Netzwerkprogrammierung 7
P Easy Http Request Netzwerkprogrammierung 9
B non US-ASCII Dateinamen über HTTP? Netzwerkprogrammierung 2
N Dateigröße einer Datei auf einem HTTP-/Web-Server. Netzwerkprogrammierung 9
P File von http-Server kopieren Netzwerkprogrammierung 5
G unvollständige Daten: Http Client-Server-Kommunikation Netzwerkprogrammierung 2
G http 1.1 socket? Netzwerkprogrammierung 3
S http Server selber schreiben Netzwerkprogrammierung 5
S Suche API für einfachen HTTP-Zugriff. Netzwerkprogrammierung 17
Z HTTP Request Netzwerkprogrammierung 3
A http request per socket an apache server Netzwerkprogrammierung 5
M Ein HTTP-request aus Java heraus senden Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben