Suche API für einfachen HTTP-Zugriff.

Status
Nicht offen für weitere Antworten.

schoppenhauer_entfernt_

Bekanntes Mitglied
Hallo.

Ich suche eine einfache API für den HTTP-Zugriff, die möglichst intuitiv ist und ein möglichst kurzes Tutorial beinhaltet, das mir sagt
  • Wie ich einen Request zu einer IP oder einem Domainnamen mit Portnummer öffne
  • Wie ich get-Variablen sende
  • Wie ich post-Variablen sende
  • Wie ich den Inhalt der angesteuerten Datei vom Server in einen String speichern kann

Ok. Das wäre der Idealfall... Allgemein würde mich halt eine HTTP-API interessieren...
 

schoppenhauer_entfernt_

Bekanntes Mitglied
Nein, ich glaube eher nicht. Denn: Nicht nur, dass da kein kurzes Tutorial existiert - es existiert anscheinend überhaupt kein Tutorial, nur ein sehr dämlicher "User Guide", der aber auch nichts nützt, wenn man sich nur begrenzt mit HTTP auskennt. Außerdem scheint das eher für Server als für Clients geschrieben zu sein.
Anscheinend scheint die Java-API aber (laut der Titlepage) bereits etwas für HTTP-Zugriffe zu enthalten.

Wirklich: ALLES was ich brauche, ist die Möglichkeit zum Senden von Requests mit GET- und POST-data, und die vom Server gesendete Datei als String. Und ich glaube für diese rudimentären Dinge ist die API die du vorgeschlagen hast etwas zu kompliziert. Und ihr fehlt es an einem richtigen Tutorial. Trotzdem danke natürlich.
 

AlArenal

Top Contributor
Murrays API (httpclient) ist ziemlich easy. Wichtiger als die Funktionlität, die du nicht brauchst, sollte dir die sein, die du brauchst. DIese findest du eben in dieser Lib.

Zumal, wenn du selbst sagst von HTTP keine Ahnung zu haben, macht es wohl keinen Sinn wenn du selbst versuchst HTTP nachzucoden, oder? Der Lib selber isses auch völlig peng ob du sie client- oder serverseitig verwendest. HTTP ist HTTP. Musst du dir überlegen, ob es Sinn macht etwas nachcoden zu wollen, von dem man nichts weiß. Du wirst nicht umhin kommen dich ein klein wenig mit der FUnktionsweise von HTTP zu beschäftigen.
 

schoppenhauer_entfernt_

Bekanntes Mitglied
AlArenal hat gesagt.:
Murrays API (httpclient) ist ziemlich easy. Wichtiger als die Funktionlität, die du nicht brauchst, sollte dir die sein, die du brauchst. DIese findest du eben in dieser Lib.

Zumal, wenn du selbst sagst von HTTP keine Ahnung zu haben, macht es wohl keinen Sinn wenn du selbst versuchst HTTP nachzucoden, oder? Der Lib selber isses auch völlig peng ob du sie client- oder serverseitig verwendest. HTTP ist HTTP. Musst du dir überlegen, ob es Sinn macht etwas nachcoden zu wollen, von dem man nichts weiß. Du wirst nicht umhin kommen dich ein klein wenig mit der FUnktionsweise von HTTP zu beschäftigen.
Guderle... Ich hab die RFC teilweise gelesen - daher weiß ich, dass man sich nicht immer beim Server authentifizieren muss, etc., was in dem tollen User-Guide zwar fabelhaft beschrieben ist, mich aber wenig interessiert. Wenn ich was größeres machen wollen würde, würd ich das direkt selber mit Sockets machen. Aber das ist mir bei HTTP dann für das bissel was ich damit vorhabe doch aweng zu dumm.
Wie man Get- und Postdata verschickt steht leider nirgends.
Anstatt mir hier dämliche Ratschläge der Form "Lass es lieber, du bist eh zu blöd" zu geben, hättest du mir ja produktiver Weise einen Link zu dem anscheinend doch existierenden nur sehr gut versteckten Tutorial geben können. Da hätt ich wenigstens was davon. Leider steht dadrinnen auch nicht, wie man Postdata schickt.

Achja... Es macht einen gewaltigen Unterschied ob man einen Server oder einen Client programmiert - andere Fehler treten auf, Befehle sind anders, und und und ... - und es ist keineswegs klar, dass man eine API für beides verwenden kann. Dies trifft bereits auf so Sachen wie IRC zu, wo die Unterschiede zwischen Server und Client noch wesentlich kleiner sind als bei HTTP.
 

AlArenal

Top Contributor
Schoppenhauer hat gesagt.:
Guderle... Ich hab die RFC teilweise gelesen - daher weiß ich, dass man sich nicht immer beim Server authentifizieren muss, etc., was in dem tollen User-Guide zwar fabelhaft beschrieben ist, mich aber wenig interessiert.

Nichts und niemand hält dich davon ab den Teil der API links liegen zu lassen, den du nicht brauchst. Mich interessieren auch nicht die Unmengen an Klassen der JFC, die ich nicht direkt nutze...

Wenn ich was größeres machen wollen würde, würd ich das direkt selber mit Sockets machen. Aber das ist mir bei HTTP dann für das bissel was ich damit vorhabe doch aweng zu dumm.

Komisch. Es gibt ne ganze Menge recht großer Projekte unter dem Apache-Deckmantel und die bneutzen alle HttpClient, wenn sie mit Http arbeiten. Die Lib ist gewissermaßen ein Abfallprodukt.

Wie man Get- und Postdata verschickt steht leider nirgends.
Anstatt mir hier dämliche Ratschläge der Form "Lass es lieber, du bist eh zu blöd" zu geben, hättest du mir ja produktiver Weise einen Link zu dem anscheinend doch existierenden nur sehr gut versteckten Tutorial geben können. Da hätt ich wenigstens was davon. Leider steht dadrinnen auch nicht, wie man Postdata schickt.

Anstatt patzig zu werden, hättest du besser mal aufmerksamer lesen sollen. Im Tutorial ist doch groß und breit erklärt, wie man grundlegend mit der Lib arbeitet, dargestellt anhand eines kleinen Beispiels mit GET. Aus folgendem Ausschnitt lässt sich ohne tiefere Kenntnis der Lib erkennen, dass es eine Klasse GetMethod gibt und diese entweder ein Interface HttpMethod implementiert, oder von einer gleichnamigen Klasse abgeleitet ist. Das legt den Schluss nahe, dass es evtl. auch eine Klasse PostMethod geben könnte.

Tutorial hat gesagt.:
We will be using the Get method which is a simple method that simply takes a URL and gets the document the URL points to.

Code:
HttpMethod method = new GetMethod("http://www.apache.org/");

Achja... Es macht einen gewaltigen Unterschied ob man einen Server oder einen Client programmiert - andere Fehler treten auf, Befehle sind anders, und und und ... - und es ist keineswegs klar, dass man eine API für beides verwenden kann. Dies trifft bereits auf so Sachen wie IRC zu, wo die Unterschiede zwischen Server und Client noch wesentlich kleiner sind als bei HTTP.

Obiges Bla werte ich als weiteres Indiz für deinen Unwillen zu LESEN. Steht alles sehr umfassend und übersichtlich auf der Projekt-Seite, zu der Murray die den Link ja genannt hatte.

Eigeninitiative ist ausdrücklich erwünscht.
 

schoppenhauer_entfernt_

Bekanntes Mitglied
Wie man unschwer erkennen kann handelt es sich bei dieser Methode um eine GET-Method. Ich brauche eine POST-Method. Diese gibt es auch.

Wie dem auch sei. Sorry, dass ich nicht so freundlich wie sonst bin, aber mich nervt es einfach, wenn leute vollkommen unproduktive Posts schreiben, die einfach zur Lösung eines Problems NICHT beitragen... Dass ich selber weitersuche, auch wenn ich schreibe, dass ich nichts finde, dürfte ja klar sein. Ich brauche niemanden, der mir das sagt.
 

AlArenal

Top Contributor
Alles was du brauchst findest du hinter Murrays Link. MICH nervt es, wenn man zum aufmerksamen Weitersuchen und Lesen noch zu faul ist und stattdessen lieber andere nervt, einem doch eine auf einen selbst zugeschneiderte Maßarbeit als Lösung zu liefern.

Hilf dir selbst, dann hilft dir Gott.

*5euroinsphrasenschweinwerf*
 

AlArenal

Top Contributor
Illuvatar hat gesagt.:
Roar hat gesagt.:
- das was du machen willst geht auch mit java.net.URL und HttpURLConnection
Halte ich, ehrlich gesagt, auch für sinnvoller.

Ansonsten noch --> Link <--, da geht es um URLConnection und um ein Post per Jakarta HttpClient.

"sinnvoller" ist immer relativ, da wir nicht die genauen Rahmenbedingungen kennen. Spätestens wenn dur irgendwo nen Proxy dazwischen hast, oder serverseitig ein IIS mit Authentifikation arbeitet, hast du nämlich mit Javas Low-Level Bordmitteln ziemlich verloren. Wenn du dann später vielleicht mal auf HTTPS umstellen willst... usw. usf.
 

karstenkurt

Mitglied
Hallo,

bin neu hier und hätte da mal eine kleine Frage zum httpclient.
Kommunikation klappt, allerdings bekomme ich von Server eine HTML-Seite zurück, in welcher

Code:
<meta http-equiv="refresh" content="7; URL=login_ok.php?
status=kostenlos&adomain=antispam24.de&usern=xxx">

steht. Wie bekomme ich den Redirect denn gefangen? Hab schon versucht die Seite nach 7 sec. erneut abzufragen, oder 7 sek. zu warten und den getResponseBodyAsStream() erst dann abzuziehen, klappt aber alles nicht. In der oben angegebenen Doku konnte ich nix finden.

Vielen Dank für die Hilfe
KK
 

AlArenal

Top Contributor
Das Problem ist, dass es sich nicht um einen HTTP-Redirect handelt, sondern dieser im Content steht und mit Content hat HttpClient nichts am Hut, weil der ja mit dem Protokoll (also HTTP) selber auch nichts zu tun hat.

D.h. du bist selbst dafür verantwortlich den Content zu parsen und ggf. erneut ein GET durchzuführen. Wie die HttpClient-Jungs sagen: "It's not a browser".
 

karstenkurt

Mitglied
Hi,

danke für die Antwort. Das ist ja gerade mein Problem. Da kommt dann immer (egal wie lange ich warte) der Text "Bitte warten...." :shock:
 

Lim_Dul

Top Contributor
karstenkurt hat gesagt.:
Hi,

danke für die Antwort. Das ist ja gerade mein Problem. Da kommt dann immer (egal wie lange ich warte) der Text "Bitte warten...." :shock:

Du darfst ja auch nicht gleiche Seite abfragen. Sondern musst die, in dem Redirect angegebene URL abfragen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
T Suche Internet-Lektüre Netzwerkprogrammierung 0
P Automatische Host suche im Netzwerk Netzwerkprogrammierung 3
H Suche Literatur zur Netzwerkprogrammierung Netzwerkprogrammierung 5
T RMI Suche seeeeehr einfaches RMI-Tutorial Netzwerkprogrammierung 5
J Suche Ratschlag zu Objektserialisierung bei ObjectStreams Netzwerkprogrammierung 2
G Google-Suche funktioniert nicht Netzwerkprogrammierung 6
V Suche Alternative zu Sockets Netzwerkprogrammierung 3
M Suche Klasse um Paramater zu einer URL hinzuzufügen. Netzwerkprogrammierung 3
B crawler und volltext suche im internet Netzwerkprogrammierung 2
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
B Webview für Anwendung Netzwerkprogrammierung 7
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
F Einfaches Gateway für Log-Files Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T FTP Wie Notwendigkeit für "rekey" klientenseitig detektieren? Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
M Erreichbar für alle zu sein Netzwerkprogrammierung 9
M Server nur für eine Aufgabe Netzwerkprogrammierung 2
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
T uberspace.de als (v)root-Ersatz für kleinere Java-Anwendungen? Netzwerkprogrammierung 12
L Proxy für Dateidownload? Netzwerkprogrammierung 3
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Leitstelle für Funkspiel Netzwerkprogrammierung 8
F Java-Beispielcode für Zeroconf (ähnlich Apple Bonjour) Netzwerkprogrammierung 7
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
F SSL-Zertifikate für viele Nutzer? Netzwerkprogrammierung 8
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
S wie stell man die classpath für JARs? Netzwerkprogrammierung 3
M Bestimmte Klassen für Netzwerkchecks gesucht Netzwerkprogrammierung 11
M ClassLoader für Axis2 setzen Netzwerkprogrammierung 15
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
P Proxy für Anwendung setzten Netzwerkprogrammierung 3
T Bezeichner "end of line" für die Funktion readline Netzwerkprogrammierung 5
A DataGramsocket Übertragungsproblem im Internet (IPs für Voip) Netzwerkprogrammierung 5
E Userliste für Chat Applet Netzwerkprogrammierung 4
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
F Netzwerkprogrammierung für Anfänger Netzwerkprogrammierung 2
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
B Variablen ausrichten für Übertragung Netzwerkprogrammierung 2
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
K Getrennte Rechner für RMI-Server/RMI-Registry, bzw. Alternativen? Netzwerkprogrammierung 5
dayaftereh HTTPCleint und HTMLparser für hTTpBot Netzwerkprogrammierung 2
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
0din Grundlage für Bluetooth Netzwerkprogrammierung 5
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
F Empfehlung für embedded Webserver Netzwerkprogrammierung 10
W Bibliothek für Certificate Management Protocol (CMP) Netzwerkprogrammierung 3
O Client/Server für Ticker Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
G FileDialog für FTP Client Netzwerkprogrammierung 2
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
H RCON Tool für Gameserver Netzwerkprogrammierung 11
A Wichtig für einen Chat? Netzwerkprogrammierung 4
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
A Rezept für Webservices Netzwerkprogrammierung 5
I unc pfad für die klasse file? Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
T Filter für Input UND OutputStream Netzwerkprogrammierung 4
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
G server für mein spiel. Netzwerkprogrammierung 5
M Log In Programm für Seiten Netzwerkprogrammierung 2
G Netzwerkprogrammierung für spiele Netzwerkprogrammierung 2
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
S Server für Internetspiel Netzwerkprogrammierung 2
G Objecte für Kommunikation nutzen Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
S Idee für Projekt auf Agentenbasis Netzwerkprogrammierung 8
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5
Z Protokoll für Schiffeversenken Netzwerkprogrammierung 5
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2
R proxy für java anwendung angeben [resolved] Netzwerkprogrammierung 15
B Wie Router einstellen für CLient-Server-Programm? Netzwerkprogrammierung 4
R PPTP Protokoll für JAVA Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben