Mozilla ActiveX Control Post
hallo
Ich hab ein problem mit dem Mozilla ActiveX Control, zu finden auf www.iol.ie/~locka/mozilla/control.htm. also die Parameter des Navigate Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant; var Headers: OleVariant); ist 100% so definiert wie von dem Twebbrowser. nur kann ich postdata und headers übergeben , wie beim Twebbrowser , es ist so als macht er damit nichts.
Delphi-Quellcode:
var
EncodedStr: string; Header: OleVariant; Post: OleVariant; i: integer; begin try EncodedStr := '&user='+ USER +'&pass='+ PASS; Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte); for i := 1 to Length(EncodedStr) do Post[I - 1] := Ord(EncodedStr[I]); Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13; InetBrowser.Navigate(URL + '/?login', EmptyParam,EmptyParam, Post, Header); //eingelogt MozillaBrowser.Navigate(URL + '/?login', EmptyParam,EmptyParam, Post, Header); //nicht einlogen end; hat jemand ne idee woran es liegen könnte ? |
Re: Mozilla ActiveX Control Post
Warum baust du den Parameter PostData so umständlich zusammen ?
So erscheint mir das besser:
Delphi-Quellcode:
var
EncodedStr: string; Header: OleVariant; PostData: OleVariant; i: integer; begin try EncodedStr := '&user='+ USER +'&pass='+ PASS; PostData := EncodedStr; // wird intern als WideString bzw. BSTR gespeichert |
Re: Mozilla ActiveX Control Post
ich sag nur Ord(EncodedStr[I]);
denn das ganze muss in ascii umgewandelt werden so weit ich weis |
Re: Mozilla ActiveX Control Post
Zitat:
Sowieso wird in der Windows-Welt der ANSI Zeichensatz benützt. Bei Automatisierungsschnittstellen von ActiveX werden Strings grundsätzlich als WideString (= BSTR = Basic STring) übertragen. Ich vermute ganz stark, dass Navigate im Parameter PostData kein Variant-Array of varByte verträgt. Beim Parameter Header verwendest du ja auch einen Widestring/BSTR. |
Re: Mozilla ActiveX Control Post
naja nur wenn ich
Delphi-Quellcode:
dann passiert garnicht , weder twebbrowser noch tmozillabrowser logen sich ein
EncodedStr := '&user='+ USER +'&pass='+ PASS;
PostData := EncodedStr; und das was ich gepostet habe habe ich auf 3 oder 4 Seiten gefunden und dachte das dies 100% richtig ist |
Re: Mozilla ActiveX Control Post
Zitat:
http://support.microsoft.com/default.aspx?kbid=174923 Damit die Sache übersichtlicher wird, hier ne Funktion dazu. Hier wird übrigens ein abschliesendes #0 Zeichen geschrieben; da die Web-Browser üblicherweise in C/C++ programmiert sind):
Delphi-Quellcode:
User und Password sollte encoded werden, wie hier beschrieben:
function VarByteArrayCreate(const s:string):Variant;
var i : Integer; begin Result := VarArrayCreate([0, Length(s)], varByte); // copy the ordinal value of the character into the VarByte array for i := 1 to Length(s) do Result[i-1] := Ord(s[i]); // Final terminating Character. Result[Length(s)] := 0; end; http://www.scalabium.com/faq/dct0139.htm |
Re: Mozilla ActiveX Control Post
so hab ich mal geändert , leider hatte das ganze keinen erfolg gezeigt
Delphi-Quellcode:
EncodedStr := 'user='+ HTTPEncode(USER)+'&pass='+ HTTPEncode(PASS); Post := VarByteArrayCreate(EncodedStr); Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13; hab jetzt mal mit einem Paketsniffer geschaut was rausgeht beim Twebbrower wird alles vom EncodedStr sauber gesendet beim Tmozillabrowser geht nichts raus ich denk mal das ist nicht implementiert in der version , schade somit ist es leider kein 100% ersatz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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