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;