Entwickler-Ecke
Internet / Netzwerk - Befehle ausführen im Internet
MarkusReisser - Do 28.08.08 13:18
Titel: Befehle ausführen im Internet
Hallo,
ich würde gerne ein Programm schreiben, welches Befehle, die ich vorher festlege, im Internet ausführt. Dies Befehle sollen so hier aussehen:
Quelltext
1:
| http://www.foo.bar/foo/network.php?ip=127.0.0.1?dns=127.0.0.1 |
Das ist nur ein sinnlos ausgedachter Befehl, der aber das Prinzip zeigt... Wie kann ich das umsetzen? Ich habe noch nie mit HTTP Abfragen in Delphi gearbeitet und weiß daher leider nix...
Aber ich denke, dass das vllt ganz einfach zu lösen ginge.
Und dann wollte ich als zweites noch fragen, wie dann eine Antwort abfangen kann. z.B. habe ich den Befehl von oben ausgeführt und dann kommt als Antwort "All Done". Das würde ich dan gerne im Programm in ein Memo ausgeben. Die Ausgabe ist ja nicht das Problem, sondern eher das Abfangen vom HTTP.
Vielen Dank schonmal im Vorraus für Antworten :)
Mfg Markus
Moderiert von
Narses: Code-Tags hinzugefügt
MarkusReisser - Fr 29.08.08 00:50
Hallo,
danke schonmal. Ich habe erstmal das Indy Zeug installiert. Hier im Forum war zwar ne Anleitung, aber ich das hat alles nicht so wirklich funktioniert, aber ich habe es nach gesundem Menschenverstand doch installieren können :)
So... Ich sage es jetzt einfach mal: Ich will mein eigenes Tool schreiben, dass Dinge für mich erledigt. Also gucken, ob Files existieren und halt Befehle ausführen und dann den Inhalt der Antwort mir ausgeben.
Ich habe bis jetzt das hier:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button2Click(Sender: TObject); var uIndy: TIdHttp; tmpString: String; begin uIndy := TIdHTTP.Create(Form1); uIndy.AllowCookies := False; uIndy.HandleRedirects := True; uIndy.HTTPOptions := [hoForceEncodeParams]; uIndy.ProxyParams.BasicAuthentication := False; uIndy.Request.Accept := 'text/html, */*'; uIndy.Request.BasicAuthentication := False;
tmpString := uIndy.Get('http://127.0.0.1/foo/file.php'); ShowMessage(tmpString);
uIndy.Free; end; |
So... Ist die Datei vorhanden, dann zeigt er mir den Inhalt an... Das will ich aber nicht... Ich will in dem Falle, dass er mir nur sagt, ob die Datei da ist oder nicht. :) Wie kann ich das denn erreichen?
Gibt es sowas wie uInde.Post, womit ich meine Befehle ausführen kann? Also das im ersten Posting?
Und ich habe noch ein Problem: Wenn ich den Befehl von oben im Browser Firefox ausführe, (
http://www.foo.bar/foo/network.php?ip=127.0.0.1?dns=127.0.0.1) dann würde in der Adresszeile im Browser nen &token=2faa62a7ddea1772ed1e07083182953b kommmen. Das brauche ich aber auch in meinem Programm für später... Wie kann ich das denn nach dem Aufruf des Befehls in eine variable speichern ?
Und weiterhin, wie kann ich etwas aus den ShowMessage(tmpString); filtern? Also ich will nur was bestimmtes angezeigt bekommen... Z.b den Ausdruck foo.bar und alles wasdahinter kommt.
Ich weiß, dass ist alles ganz schön viel und wirres Zeug. Tut mir leid.
Danke schonmal für die große Hilfe :):)
Mfg Markus
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Yogu - Fr 29.08.08 11:49
Über HTTP kannst du eigentlich nicht prüfen, ob eine bestimmte Datei auf dem Server vorhanden ist. Aber im Normalfall wird ein 404-Header über das HTTP-Protokoll an den Client versendet, wenn die aufgerufene Datei nicht gefunden werden kann. Wenn ein solcher Header existiert, wird von den Indys eine Exception ausgelöst - und die kannst du abfangen. Wie sie genau heißt, weiß ich gerade nicht, aber du könntest es einfach mal ausprobieren, zum Beispiel diese Datei versuchen herunterzuladen:
http://www.yogularm.de/diese-datei-existiert-bestimmt-nicht.html
Wenn du nicht die gesamte Datei herunterladen willst, kannst du IMHO auch nur den Kopfteil anfordern, du könntest mal danach
suchen [
http://www.delphi-forum.de/search.php] oder
googlen [
http://www.google.de].
MarkusReisser hat folgendes geschrieben: |
| wie kann ich etwas aus den ShowMessage(tmpString); filtern? Also ich will nur was bestimmtes angezeigt bekommen... Z.b den Ausdruck foo.bar und alles wasdahinter kommt. |
Hier ein paar Befehle, die dir dabei behilflich sein könnten, einfach mal in der Onine-Hilfe danach suchen:
Delphi-Quelltext
1: 2: 3: 4:
| Copy Pos Length StringReplace |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!