AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal INDY 10.2.0.3 - Post Send - IdHTTP
Thema durchsuchen
Ansicht
Themen-Optionen

INDY 10.2.0.3 - Post Send - IdHTTP

Ein Thema von Pascal95 · begonnen am 24. Jan 2011 · letzter Beitrag vom 27. Jan 2011
Antwort Antwort
Pascal95
(Gast)

n/a Beiträge
 
#1

INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 24. Jan 2011, 15:39
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 (Test-PHP) habe ich mal ein Beispiel hochgeladen.
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:
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&lsd=aAcaf&locale= de_DE&email=*email*&pass=*pass*&default_persistent =0&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&lsd=aAcaf
Dann kommt nichts zurück.


Es funktioniert weder mit "Ararat Synapse" noch mit "Indy", das ich allgemein sehr bevorzuge.


INDY:
Code:
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;
Das Programm hängt sich einfach auf!



Synapse:
Code:
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;
Hier kommt einfach nichts (nil) an!


Es wäre nett, wenn mir einer helfen könnte !!!


Pascal

Geändert von Pascal95 (25. Jan 2011 um 13:39 Uhr)
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#2

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 13:37
Wenn ich die https - Daten mit Hilfe von idHTTP1.Get('https://www.facebook.com'); einhole, erscheint die Meldung: "HTTP/1.0 302 Found".
Handleredirects ist übringens auf False; soll das vielleicht umgestellt werden?
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#3

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 14:19
Gibt es Alternativen?
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#4

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 15:09
Wenn ich die https - Daten mit Hilfe von idHTTP1.Get('https://www.facebook.com'); einhole, erscheint die Meldung: "HTTP/1.0 302 Found".
Handleredirects ist übringens auf False; soll das vielleicht umgestellt werden?
Das ist vielleicht ne Idee. 302 heißt nämlich, dass die Seite unter "/" nicht zu finden ist, der Browser dir jedoch die neue/richtige Seite mitteilt.

Mehr kann ich dir leider nicht helfen, da ich kein Indy verwende.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#5

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 15:43
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:
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;
Das IdHTTP1 hat auch den IOHandler IdSSLIOHandlerSocketOpenSSL1 .

Dem IdSSLIOHandlerSocketOpenSSL1 habe ich allerdings keine weiteren Eigenschaften im Objektinspektor verliehen.


Vielen Dank!
  Mit Zitat antworten Zitat
H3llsing

Registriert seit: 12. Nov 2008
96 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 15:55
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
Facebook api auf Embarcadero

und sonst einfach mal nach Idhttp und SSL suchen
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#7

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 25. Jan 2011, 16:02
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
http://img214.imageshack.us/img214/7940/sslo.png. Da müsste man wohl gewisse Daten einfügen.
Nur welche? Darauf kommt's jetzt an...

Danke

Geändert von Pascal95 (25. Jan 2011 um 16:15 Uhr)
  Mit Zitat antworten Zitat
Pascal95
(Gast)

n/a Beiträge
 
#8

AW: INDY 10.2.0.3 - Post Send - IdHTTP

  Alt 27. Jan 2011, 15:05
Hallo,
ich habe jetzt herausgefunden, dass man diese DLLs braucht, die im Projektverzeichnis sein müssen. So gehts aber auch noch nicht - HTTP/1.0 302 Found.
Jetzt habe ich mir hier die openssl.pas heruntergeladen. Wenn ich sie dann über "uses" ins Projekt einbinde, und die DLLs (libeay32.dll, ssleay32.dll, zlib1.dll) im selben Verzeichnis sind - erstelle ich folgenden Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if InitSSLInterface then
    ShowMessage('OK!')
  else
    ShowMessage('Fehler!');
end;
Es erscheint "Ok", den Quellcode habe ich aus der example, die bei "openssl für Lazarus" dabei war.

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: IdIRC und SSL.
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

Geändert von Pascal95 (27. Jan 2011 um 15:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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