![]() |
INDY 10.2.0.3 - Post Send - IdHTTP
Hallo,
ich hoffe, dass ich hier im richtigen Sub-Forum gelandet bin. Ich habe ein Problem mit der Indy Komponente für Freepascal. So versuche ich, Daten per "Post" an ein PHP-Formular zu senden. Mir ist dabei aufgefallen, dass es bisher nur bei /normalen/ HTTP Seiten funktioniert. Hier ( ![]() Wenn man an diese Datei per Post Daten ("x=Hallo") sendet, funktioniert es auch. Bei Https funktioniert das aber nicht so sehr: Wenn ich z.B. Daten an Facebook.de sende: Zitat:
Es funktioniert weder mit "Ararat Synapse" noch mit "Indy", das ich allgemein sehr bevorzuge. INDY:
Code:
Das Programm hängt sich einfach auf!
procedure TForm1.Button1Click(Sender: TObject);
var s: TStringList; v: TMemoryStream; begin s:= TStringList.Create; v:= TMemoryStream.Create; s.Add('charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'); s.Add('lsd=-uGj9'); s.Add('locale=de_DE'); s.Add('email=*mail-zensiert*'); s.Add('pass=*pass-zensiert*'); s.Add('default_persistent=0'); IdHTTP1.Post('http://login.facebook.com/login.php?login_attempt=1', s, v); ShowMessage(MemoryStreamToString(v)); s.Free end; Synapse:
Code:
Hier kommt einfach nichts (nil) an!
function GetPOSTResult(Pfad, Postdata: String; ResultStrings:TStringList):Boolean;
var Str: TMemoryStream; begin Result:=False; ResultStrings.Clear; Str := TMemoryStream.Create; try if HttpPostURL(Pfad, Postdata, Str) then begin ResultStrings.LoadFromStream(Str); Result:=True; end; finally Str.Free; end; end; Es wäre nett, wenn mir einer helfen könnte :) :) !!! Pascal |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Wenn ich die https - Daten mit Hilfe von
Delphi-Quellcode:
einhole, erscheint die Meldung: "HTTP/1.0 302 Found".
idHTTP1.Get('https://www.facebook.com');
Handleredirects ist übringens auf False; soll das vielleicht umgestellt werden? |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Gibt es Alternativen?
|
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Zitat:
Mehr kann ich dir leider nicht helfen, da ich kein Indy verwende. Gruß, Sven |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Erstmal vielen Dank für die Bemühungen!
Ich bin auch ein bisschen weiter gekommen, habe mich zur Fehlermeldung (HTTP-Statusmeldungen) erkundigt. Allerdings kam bei der Seite "http://login.facebook.com/login.php?params" ja auch die Meldung. Ich habs jetzt noch so verändert, dass ich einen IOHandler zur IdHTTP hinzugefügt habe: TIdSSLIOHandlerSocketOpenSSL. Das Ding ist wohl für HTTPS Verbindungen zuständig. Leider erscheint dann die Meldung: "Could not load SSL Library" Der Code sieht jetzt so aus:
Delphi-Quellcode:
Das
procedure TForm1.Button1Click(Sender: TObject);
var s: TStringList; v: TMemoryStream; begin s:= TStringList.Create; v:= TMemoryStream.Create; s.Add('charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'); s.Add('lsd=-uGj9'); s.Add('locale=de_DE'); s.Add('email=*xxx*%40live.de'); s.Add('pass=*xxx*'); s.Add('default_persistent=0'); IdHTTP1.Post('https://login.facebook.com/login.php?login_attempt=1', s, v); ShowMessage(MemoryStreamToString(v)); s.Free end;
Delphi-Quellcode:
hat auch den IOHandler
IdHTTP1
Delphi-Quellcode:
.
IdSSLIOHandlerSocketOpenSSL1
Dem IdSSLIOHandlerSocketOpenSSL1 habe ich allerdings keine weiteren Eigenschaften im Objektinspektor verliehen. Vielen Dank! |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Hey,
Ich hab das gleiche mal versucht, dazu ist zu sagen dass ich mich mit Idhttp noch nicht wirklich beschäftigt habe. Bei meinen Recherchen bin ich dann auf eine Unit gestoßen die ich bei embarcadero gefunden habe für Delphi 2010. Sie soll viele Facebook Funktionen enthalten. Dazu hab ich noch gelesen dass man erst ein SSL Certifikat auswählen und einspeisen muss da es ne gesicherte Verbindung ist. Tut mir leid, dass ich dir nichts genaueres sagen kann ;) hier der Link ![]() und sonst einfach mal nach Idhttp und SSL suchen :) |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Hallo,
vielen Dank. Ich schaue es mir mal an. Außerdem benutze ich Lazarus (+FPC 2.2.4) Werde dann Bescheid geben, was rausgekommen ist. Edit: Ok, der Artikel ist wirklich hilfreich. Ich wusste garnicht, dass Facebook eine vernünftige API hat. Allerdings muss ich noch die Zertifikate in mein Programm einbinden. Ich habe da unter IdSSLIOHandlerSocketOpenSSL1.SSLOptions was gefunden - und zwar die Werte CertFile/KeyFile ![]() Nur welche? Darauf kommt's jetzt an... Danke |
AW: INDY 10.2.0.3 - Post Send - IdHTTP
Hallo,
ich habe jetzt herausgefunden, dass man ![]() Jetzt habe ich mir ![]()
Delphi-Quellcode:
Es erscheint "Ok", den Quellcode habe ich aus der example, die bei "
procedure TForm1.Button1Click(Sender: TObject);
begin if InitSSLInterface then ShowMessage('OK!') else ShowMessage('Fehler!'); end; ![]() Wie kann ich jetzt fortfahren? Was bringt mir die openssl.pas, die ich jetzt mit eingebunden habe? Edit: Ich probiere gerade auch mit IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method rum und erzeuge so andere Fehlermeldungen -> es ähnelt sehr diesem Beitrag aus dem Forum: ![]() Danke sehr! Edit2: Jetzt habe ich "IdHTTP2.Handleredirects" auf TRUE gestellt -> andere Fehlermeldung: Connection closed gracefully. - Verbindung erfolgreich geschlossen, warum das denn? Das wollte ich nicht! Pascal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz