AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Mozilla ActiveX Control Post
Thema durchsuchen
Ansicht
Themen-Optionen

Mozilla ActiveX Control Post

Ein Thema von qicki · begonnen am 27. Apr 2005 · letzter Beitrag vom 28. Apr 2005
Antwort Antwort
qicki

Registriert seit: 5. Jul 2004
22 Beiträge
 
Delphi 6 Personal
 
#1

Mozilla ActiveX Control Post

  Alt 27. Apr 2005, 17:15
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 ?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Mozilla ActiveX Control Post

  Alt 27. Apr 2005, 17:27
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
Andreas
  Mit Zitat antworten Zitat
qicki

Registriert seit: 5. Jul 2004
22 Beiträge
 
Delphi 6 Personal
 
#3

Re: Mozilla ActiveX Control Post

  Alt 27. Apr 2005, 19:59
ich sag nur Ord(EncodedStr[I]);

denn das ganze muss in ascii umgewandelt werden so weit ich weis
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Mozilla ActiveX Control Post

  Alt 28. Apr 2005, 08:17
Zitat von qicki:
ich sag nur Ord(EncodedStr[I]);
denn das ganze muss in ascii umgewandelt werden so weit ich weis
Ord(EncodedStr[I]) wandelt aber nicht in ASCII.
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.
Andreas
  Mit Zitat antworten Zitat
qicki

Registriert seit: 5. Jul 2004
22 Beiträge
 
Delphi 6 Personal
 
#5

Re: Mozilla ActiveX Control Post

  Alt 28. Apr 2005, 15:13
naja nur wenn ich
Delphi-Quellcode:
EncodedStr := '&user='+ USER +'&pass='+ PASS;
PostData := EncodedStr;
dann passiert garnicht , weder twebbrowser noch tmozillabrowser logen sich ein

und das was ich gepostet habe habe ich auf 3 oder 4 Seiten gefunden und dachte das dies 100% richtig ist
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Mozilla ActiveX Control Post

  Alt 28. Apr 2005, 15:53
Zitat von qicki:
naja nur wenn ich
Delphi-Quellcode:
EncodedStr := '&user='+ USER +'&pass='+ PASS;
PostData := EncodedStr;
dann passiert garnicht , weder twebbrowser noch tmozillabrowser logen sich ein
Aah, du hast ja recht, der Parameter PostData verhält sich etwas seltsam:
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:
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;
User und Password sollte encoded werden, wie hier beschrieben:
http://www.scalabium.com/faq/dct0139.htm
Andreas
  Mit Zitat antworten Zitat
qicki

Registriert seit: 5. Jul 2004
22 Beiträge
 
Delphi 6 Personal
 
#7

Re: Mozilla ActiveX Control Post

  Alt 28. Apr 2005, 16:14
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
  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 06:26 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