Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi POST-Ergebnis speichern / Datei herunterladen (https://www.delphipraxis.net/63148-post-ergebnis-speichern-datei-herunterladen.html)

Marvin666 14. Feb 2006 15:49


POST-Ergebnis speichern / Datei herunterladen
 
Hallo,
ich benötoge mal wieder euren Rat:

Das ganze sieht so aus (IST-Zustand):
Ich lade eine HTML-Datei, die ein ganz einfaches Formular enthält, dass aus zwei Textfeldern und einem Submit-Button besteht. Per POST werden die Parameter in den Textfeldern ("ID" und "Produkt") an eine https-URL geschickt.
Als Reaktion auf den POST öffnet sich das Dialogfenster "Zertifikat annehmen JA oder NEIN" und eine "Username/Passwort-Abfrage". Ist diese Hürde genommen, zeigt mein TWebBrowser die Grafik an, die ich bestellt habe.

Soll-Zustand:
Per Indy-Komponenten sollen an den Server die Parameter "Id" und "Produkt" gesendet werden. Die Antwort (hier: eine Grafik des Typs png) soll dann (automatisch) gespeichert werden.
Wichtig: Die nerfige Authentifizierungs-Abfrage soll nicht mehr auftauchen.

Problem:
Wie kann ich meine Parameter ("ID" und "Produkt") an eine https-URL senden und eine Antwort (also die o.g. Grafikdatei) speichern ?
Bisher habe ich es nur geschafft strings zu empfangen - das ging so:
Delphi-Quellcode:
function TForm1.SendPostData(Ahttp: TIdHTTP; const AtoURL: string): string;
  //AtoURL: An diese URL werden die Informationen gesendet
  //Result: HTML-Ergebnis (quasi Antwort des Scripts)
var
  aStream: TMemoryStream;
  Params: TStringStream;
begin
  aStream := TMemoryStream.create;
  Params := TStringStream.create('');
  AHTTP.Request.ContentType := 'application/x-www-form-urlencoded';

  try
    //Stream mit Werten füllen
    Params.WriteString('TRANSAKTIONSKENNUNG=' + transaktionskennung + '&'); //hier sollen "ID" und "Produkt"
    Params.WriteString('INSTITUTION=' + institution);                       //eingelesen werden.

    AHTTP.Request.BasicAuthentication:=true;
    AHTTP.Request.Username:=MeinBenutzername;
    AHTTP.Request.Password:=MeinPasswort;

    try
      AHTTP.Post(AtoURL,Params,aStream);
    except
      on E: Exception do
        showmessage('Fehler bei der Übertragung: ' + E.Message);
    end;
    aStream.WriteBuffer(#0' ', 1);
    Result := PChar(aStream.Memory);
  except
    Result := 'Fehler!';
  end;
end;
:gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz