Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TidHTTP.Get - Keine GET Variablen? (https://www.delphipraxis.net/83269-tidhttp-get-keine-get-variablen.html)

xSkaschY 30. Dez 2006 10:15


TidHTTP.Get - Keine GET Variablen?
 
Morgen,

habe gerade ein Problem, welches mir so noch nie unter die Augen getreten ist.

Ich wollte eigentlich ein ein PHP-Script aufrufen, welches mich einen Securitykey für die GamespyMaster-Server generiert, anhand des schon erhaltenen Basickeys und des Handoff Code.

Nunja, simple to do?

Aufruf:
Delphi-Quellcode:
try
   httpObject := TIdhttp.Create(nil);
   try
      vkey := httpObject.Get('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);
   finally
      httpObject.Free;
   end;
except // Ich bin Paranoid.
   Memo1.Lines.Add('An error encountered while receiving the security key.');
end;

Ich bekomme, ohne das try-except handling eine unwillkommene Error Msg mit dem Aufschluss reichen text
Code:
<html>.

Wenn ich das Script im Browser öffne, funktioniert alles wunderbar!

(TEST: http://glevel.sky-networx.net/glaaoq...hp?skey=QSBGSJ)

secureKey ist in dem Fall QSBGSJ (Überprüft).


Weiss jemand warum des sich weigert?

Bis dahin *Kaffeetasse heb* :cheers:

mkinzler 30. Dez 2006 10:38

Re: TidHTTP.Get - Keine GET Variablen?
 
Kann es sein, daß der Browser ausgewertet wird?

TwoFace 30. Dez 2006 10:46

Re: TidHTTP.Get - Keine GET Variablen?
 
Servus

Also wenn ich die Zeile
Delphi-Quellcode:
   memo1.lines.add(vkey);
nach
Delphi-Quellcode:
vkey := httpObject.Get('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);
einfüge steht im Memo eine Buchstaben- / Zahlenkombination.

Greetz

xSkaschY 30. Dez 2006 11:10

Re: TidHTTP.Get - Keine GET Variablen?
 
Zitat:

Zitat von TwoFace
Servus

Also wenn ich die Zeile
Delphi-Quellcode:
   memo1.lines.add(vkey);
nach
Delphi-Quellcode:
vkey := httpObject.Get('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);
einfüge steht im Memo eine Buchstaben- / Zahlenkombination.

Greetz

Genau das habe ich mir auch gedacht, aber stattdessen Poppt mich der Error-MsgDlg mit "<html>." an.



Hier mal die ganze Procedure...

Delphi-Quellcode:
procedure Tserversearch.createRequest();
var secureKey: string;
    handoff: string;
    vkey: string;
    httpObject: TidHTTP;
begin
     handoff := 'xxxxxxx';

     masterConnection.Host := masterHost;
     masterConnection.Port := masterPort;
     masterConnection.Connect;
     if masterConnection.Connected then begin


        masterConnection.Write('\xxxxxxxxx');

        secureKey := StringReplace(masterConnection.AllData, '\basic\\secure\', '', [rfReplaceAll]);
       
        Memo1.Lines.Add('Secure-Key: ' + secureKey);
        Memo1.Lines.Add('Handoff: ' + handoff);
        Memo1.Lines.Add('Generating vKey...');
        Memo1.Lines.Add('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);

        try
           httpObject := TIdhttp.Create(nil);
           try
              vkey := httpObject.Get('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);
           finally
              httpObject.Free;
           end;
        except
              Memo1.Lines.Add('An error encountered while receiving the security key.');
        end;

        Memo1.Lines.Add(vkey);
        Memo1.Lines.Add('----------------------------');

     end else begin
         ShowMessage('Der Masterserver scheint offline zu sein...' + #13+#10 + 'Bitte versuche es später nochmal.');
     end;
end;

xSkaschY 30. Dez 2006 11:12

Re: TidHTTP.Get - Keine GET Variablen?
 
Zitat:

Zitat von mkinzler
Kann es sein, daß der Browser ausgewertet wird?

Bitte was ? :gruebel:

mkinzler 30. Dez 2006 12:48

Re: TidHTTP.Get - Keine GET Variablen?
 
Jeder Browser gibt ja seinen Bezeichnung als String mit, auch INDY. Kann es aber nicht sein, da es ja bei TwoFace zu funktionieren scheint.

xSkaschY 30. Dez 2006 12:50

Re: TidHTTP.Get - Keine GET Variablen?
 
In dem PHP-Script ist definitiv keine Browser überprüfung, da des Script von mir ist.

Jedoch verstehe ich nicht warum es bei Ihm funktioniert und bei mir nicht.

TwoFace 30. Dez 2006 13:46

Re: TidHTTP.Get - Keine GET Variablen?
 
Servus

Probiers mal mit einem Entwurfszeit-idhttp. Evtl. liegt ja der Fehler nicht in deinem Programm sondern an deinem System.
Öffne ein neues Projekt. Auf das Form ziehst du nur einen IdHttp client, einen Button und ein Label ist. Schreib in die OnClick Prozedur des Buttons folgendes:
Delphi-Quellcode:
var
  securekey, vkey: string;
begin
  securekey := 'QSBGSJ';
  vkey := idhttp1.Get('http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=' + secureKey);
  label1.caption := vkey;
end;
Oder bekommst du dann auch die lustige Fehlermeldung ;-)

Greetz

xSkaschY 31. Dez 2006 04:06

Re: TidHTTP.Get - Keine GET Variablen?
 
Strange, so gehts !

What the hell is wrong ? :wall:


Edit:

Wenn ich jetzt in meinem Projekt die TidHTTP auf Form schmeisse und des so mache, gibs immer noch den gleichen Fehler!

Edit2:

Noch lustiger is, wenn ich secureKey hardcoder reinpacke, gehts. Anders nid! Aber die Variable ist definiert !

Bekomme ja in meinem Memo als debug dieses zurück:

Code:
Secure-Key: VLKPWS
Handoff: d4kZca
Generating vKey...
[url]http://glevel.sky-networx.net/glaaoqc/gs/createvkey.php?skey=VLKPWS[/url]
----------------------------

xSkaschY 1. Jan 2007 15:39

Re: TidHTTP.Get - Keine GET Variablen?
 
*push*

No Solutions ?

Wäre es möglich das ganze über sockets zuregeln? Stichwort: HTTP-Header und son quatsch?


LG Toby

P.S: Ich wünsche der Delphi-Praxis Community ein frohes neues Jahr 2007.


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