Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   IdHttp Formular per POST - RangeCheckError (https://www.delphipraxis.net/130901-idhttp-formular-per-post-rangecheckerror.html)

fkerber 15. Mär 2009 13:22


IdHttp Formular per POST - RangeCheckError
 
Hi!

Es geht darum ein Formular zu "simulieren", das ansonsten per POST abgesendet würde. Das funktioniert an sich auch super (also die Aktion, die vom Formular angestoßen wird, wird einwandfrei ausgeführt (Telefonanruf mit der FritzBox) - doch dann bekomme ich einen RangeCheck-Error onTop:

Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse ERangeError mit der Meldung 'Fehler bei Bereichsprüfung' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Eingrenzen konnte ich es auf diesen Aufruf in der Unit IdSysVCL:

Delphi-Quellcode:
class function TIdSysVCL.StrToInt(const S: string;
  Default: Integer): Integer;
begin
  Result := SysUtils.StrToIntDef(Trim(S),Default);
end;

Hat jemand eine Idee, woran das liegen könnte? Der gesamte Aufruf sieht so aus:

Delphi-Quellcode:
begin
  if not Assigned(aHttp) then
    exit;
  try
    AHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
    try
      AHTTP.Post(AtoURL,aParams);
    except
      on E: Exception do
        showmessage('Fehler bei der Übertragung: ' + E.message);
    end;
  finally
  end;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
sl: TStringlist;
begin
sl:=TStringlist.Create;
   sl.add('login:command/password=PASSWORT');
   sl.add('telcfg:settings/UseClickToDial=1');
   sl.add('telcfg:command/Dial=TELEFONNUMMER');
   sl.add('telcfg:settings/DialPort=2');

  SendPostData(IdHttp1, 'http://fritz.box/cgi-bin/webcm',sl);
  sl.free;
end;
(Ja, der Stringlist fehlen noch Schutzblöcke ;) )


Ciao, Frederic

omata 15. Mär 2009 14:00

Re: IdHttp Formular per POST - RangeCheckError
 
Kompiliere doch die Indys ohne Bereichsprüfung und versuch es dann nochmal.

fkerber 15. Mär 2009 19:01

Re: IdHttp Formular per POST - RangeCheckError
 
Hi!

Aber damit löse ich doch das Problem nicht oder?
Also damit ändere ich doch nix an der Ursache - höchstens an den Auswirkungen?


Ciao, Frederic

omata 15. Mär 2009 19:12

Re: IdHttp Formular per POST - RangeCheckError
 
Das ist richtig. Allerdings gibt es eben viele Entwickler, die die Bereichsprüfung nicht aktiviert haben. Dies wird hier auch hier der Fall sein, so wird der Code trotzdem funktionieren, auch wenn nicht immer alle Regeln eingehalten werden. Also kompilier einfach die Sourcen der Indys ohne Bereichsprüfung und benutze dann nur die kompilierten Dateien, dann kannst du in deinem Quellcode weiterhin die sinnvolle Bereichsprüfung aktiveren.
Oder du machst dich auf die Suche und findest heraus, was da nicht richtig ist und korrigierst den Fehler, wenn du alles wichtige dazu verstanden hast und vollständig überblicken kannst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:38 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