Thema: Delphi Indy + Website

Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Indy + Website

  Alt 6. Sep 2009, 12:42
Bei Get werden sämtliche Parameter (also Formularfelder) in der URL übertragen. z. B. http://www.deineseite.de/index.php?s...sch&seite=home
Die URL besteht also aus der Domain deineseite.de, der Datei index.php und 2 Parametern. Nach der Datei kommt ein Fragezeichen was sozusagen den Beginn der Parameter einleitet. Ein Parameter besteht immer aus einem Paar, wobei der erste Wert der Name des Parameters und der zweite gefolgt nach einem Gleichheitszeichen der Wert für den Parameter ist (Name: sprache | Wert Deutsch). Wenn du mehrere Parameter übergeben willst werden diese mit einem kaufmännischen UND verbunden. Insgesamt könnte es dann so aussehen: ?sprache=deutsch&seite=home

Bei POST werden die Parameter ebenfalls so gegliedert, jedoch nicht per URL sondern mit der Anforderung an den Server (Request) versendet.

Zum Code:

Delphi-Quellcode:
var
  http: TIdHTTP;
  s: String;
  Params: TStrings;
begin
  http := TIdHTTP.Create(nil); //erstellen des TIdHTTP-Objekts, du könntest auch die Komponente aufs Form ziehen und mit IdHTTP1 verwenden, du sparst dir dann sowohl Create als auch Free
  try
    ...
    ShowMessage(s); //Zeigt den Quellcode der Eregbnis- / Login- / oder sonstwas - Seite an
  finally
    http.free; //das IdHTTP-Objekt löschen um Arbeitsspeicher freizugeben
  end;
end;
Delphi-Quellcode:
    //wenn die Übertragungsmethode GET ist und dir die Namen der Eingabefelder bekannt sind kannst du die URL einfach zusammen setzen (siehe oben)
    s := http.Get('http://seite.de/datei.php?feld1=bla&feld2=blubb');

    //wenn die Übertragungsmethode POST ist benötigen wir erst ein Objekt vom Typ TStrings/TStringList um die Parameter zu setzen
    Params := TStringList.Create; //Objekt erstellen
    try
      Params.add('feld1=bla'); //erstes Parameterpaar hinzufügen
      Params.Add('feld2=blubb'); //2tes...
      s := http.Post('http://seite.de/datei.php', Params); //Der erste Parameter von .Post ist die aufzurufende Seite, der 2. übergibt unsere Parameterliste
    finally
      Params.free; //Speicher freigeben
    end;
  Mit Zitat antworten Zitat