![]() |
Hilfe mit IdHTTP - IOHandler value is not valid...
Hi,
ich versuche schon seit 3 Tagen eine PHP Seite über die Post Funktion von IndyHttp aufzurufen, bekomme aber ständig die Fehlermeldung "IOHandler value is not valid". Bitte sagt mir, was ich falsch mache...
Delphi-Quellcode:
Danke schonmal an alle!
procedure TForm1.Button8Click(Sender: TObject);
var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try { add the used parameters for the script } { Daten für UPS Login:} { data.AddFormField('sret', 'http://www.ups.com/content/de/de/index.jsx'); data.AddFormField('uret', 'http://www.ups.com/content/de/de/index.jsx'); data.AddFormField('userid', 'smartmod'); data.AddFormField('password', 'xxxxxxx'); } { Daten für Dresnder Bank Login } data.AddFormField('identifier', '12345678'); data.AddFormField('lqp', '123456'); { Call the Post method of TIdHTTP and read the result into TMemo } Memo1.Lines.Text := IdHTTP1.Post('https://www1.dresdner-privat.de/servlet/P/SSA_MLS_PPP_INSECURE_P/pinLogin.do?', data); finally data.Free; end; end; |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
sag uns mal ob du überhaupt einen IOHandler bei deinem IdHTTP registriert hast. davon sieht man nämlich hier nix.
|
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
Hi smartmod,
du musst die Parameter in einer Stringlist mit folgendem Format übergeben:
Delphi-Quellcode:
Gruß
SL.Add('deinersterparameter=deinersterwert');
SL.Add('deinzweiterparameter=deinzweiterwert'); memo1.lines.Add(idhttp1.post('deineDomain', SL))); Christian |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
Zitat:
Bin nicht so wirklich into Delphi... Wie kann ich das überprüfen/machen? |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
Zitat:
|
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
Zitat:
Delphi-Quellcode:
(Hab mal alles gepostet zur besseren Übersicht)
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, ComCtrls, Menus, Grids, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdMultipartFormData; type TForm1 = class(TForm) PageControl1: TPageControl; Panel1: TPanel; MainMenu1: TMainMenu; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; TabSheet4: TTabSheet; TabSheet5: TTabSheet; TabSheet6: TTabSheet; Image1: TImage; Datei1: TMenuItem; Bearbeiten1: TMenuItem; Bearbeiten2: TMenuItem; NeueBestellung1: TMenuItem; Datei2: TMenuItem; Beenden1: TMenuItem; ListBox1: TListBox; GroupBox1: TGroupBox; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; GroupBox2: TGroupBox; Label4: TLabel; Label5: TLabel; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label6: TLabel; Label7: TLabel; Edit6: TEdit; Edit7: TEdit; Label8: TLabel; Edit8: TEdit; Label9: TLabel; Edit9: TEdit; Label10: TLabel; Edit10: TEdit; Edit11: TEdit; Edit12: TEdit; Edit13: TEdit; Edit14: TEdit; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Edit15: TEdit; Label16: TLabel; Label17: TLabel; Edit16: TEdit; Label18: TLabel; Label19: TLabel; Label20: TLabel; Button1: TButton; Button2: TButton; GroupBox3: TGroupBox; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; GroupBox4: TGroupBox; Label21: TLabel; Label22: TLabel; Label23: TLabel; Button9: TButton; Label24: TLabel; Label25: TLabel; Label26: TLabel; Button10: TButton; Button11: TButton; Button12: TButton; Memo1: TMemo; IdHTTP1: TIdHTTP; Edit17: TEdit; Edit18: TEdit; procedure Label19Click(Sender: TObject); procedure Label18Click(Sender: TObject); procedure Label20Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Label19Click(Sender: TObject); begin if Label19.Font.Color = clSilver then begin Label19.Font.Color := clGreen; end else begin Label19.Font.Color := clSilver; end; end; procedure TForm1.Label18Click(Sender: TObject); begin if Label18.Font.Color = clSilver then begin Label18.Font.Color := clGreen; end else begin Label18.Font.Color := clSilver; end; end; procedure TForm1.Label20Click(Sender: TObject); begin if Label20.Font.Color = clSilver then begin Label20.Font.Color := clGreen; end else begin Label20.Font.Color := clSilver; end; end; procedure TForm1.Button7Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.Button8Click(Sender: TObject); var data: TStringList; begin data := TStringList.Create; try { add the used parameters for the script } data.Add('sret=http://www.ups.com/content/de/de/index.jsx'); data.Add('uret=http://www.ups.com/content/de/de/index.jsx'); data.Add('userid=smartmod'); data.Add('password=xxxxxxxx'); {Call the Post method of TIdHTTP and read the result into TMemo} Memo1.Lines.Add(idhttp1.Post('https://wwwapps.ups.com/cclamp/login', data)); finally data.Free; end; end; end. ... aber bekomme beim Click auf Button8 immer noch "IOHandler value is not valid!" Danke für Eure Hilfe übrigens! Edit: Ach ja, wenn ich das Ding über eine HTML Seite aufrufe (also einen Button mit Post Funktion mache) dann geht es ohne Probleme. |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
hm,
ersetz mal deine uses-Liste mit der hier:
Delphi-Quellcode:
edit: hab Mist geschrieben, kompilieren geht ja :stupid:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, ComCtrls, Menus, Grids, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP edit2: konnte deinen Fehler gerade reproduzieren und probier jetzt mal ne Lösung zu finden :stupid: Ich hab auch schon ne Vermutung, die Seite ist nämlich durch SSL geschützt :gruebel: |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
Sowas schwebte mir auch vor - aber dann versteh ich nicht, wieso ein Browser das ohne weiteres machen kann... Aber ich überlass das mal grad dem Profi :)
|
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
So, bei mir funktionierts jetzt. Die Antwort stand sogar schon in der DP :zwinker:
Zitat:
Die Prozedur in deinem Button bleibt unverändert. Jetzt sollte eigentlich alles funktionieren. Das Exportieren des Zertifikats kannst du dir übrigens sparen, bei mir funktionierts auch so. Bei Bedarf häng ich meine Demo noch an. Gruß Christian |
Re: Hilfe mit IdHTTP - IOHandler value is not valid...
:corky: FUNKTIONIERT!
Dankeeeee! Hmmm... Soll/darf ich Dich direkt weiternerven? Ich schreib einfach mal... Was ich im Endeffekt machen will, ist ein Programm, mit dem ich auf UPS Internet Shipping zugreifen kann, ohne mich einzuloggen und jedesmal die Adressdaten einzugeben. Mein Ansatz war jetzt, die Klicks und Übergaben, die im Internetshipping stattfinden, alle über Delphi zu simulieren. Das nächste Problem ist jetzt, dass mir die UPS Seite beim ersten Loginversuch ne Fehlermeldung gibt (wegen Cookies) und wenn ich dann den Button einfach nochmal drücke, bin ich eingeloggt. Beim nächsten simulierten Klick, sagt er mir dann, dass mein Browser nicht unterstützt wird (versuche das aus dem Quellcode rauszulesen). So nu komm ich wieder nicht weiter. Ziel des ganzen ist eine HTML Datei, die am Ende vom Shipping Vorgang immer angezeigt wird, automatisch zu öffnen und zu drucken. Diese enthält nämlich den Shipping Aufkleber. Für einen Noob wie mich bedeutet das natürlich mehrere Jahre Arbeit ;) Viiiiiiieeeeeeeeeeeeeelen Dank schonmal!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 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-2025 by Thomas Breitkreuz