Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Anmelden per IdHTTP.Post bei IK.de (https://www.delphipraxis.net/86357-anmelden-per-idhttp-post-bei-ik-de.html)

th3lol 13. Feb 2007 00:33


Anmelden per IdHTTP.Post bei IK.de
 
Hallo,

ich möchte mich gerne ein Programm schreiben mit dem ich beim Browsergame Inselkampf (http://inselkampf.de) die Rohstoffe auslese und nachseh, welche Gebäude ich momentan mit den resourcen bauen kann.

Leider scheitert es schon am Login.

Delphi-Quellcode:
var sURL:String; slEintrag:TStringList;
begin
  slEintrag := TStringList.Create;
  sURL:='http://inselkampf.de/index.php?controller=sessions&action=create';
  with
  slEintrag do
  begin
    Add('player=mynick');
    Add('&password=asdf3g');
    Add('&world=9');
    Add('&remember=1');
  end;
  try
    Memo1.Text:=IdHTTP1.Post(sURL,slEintrag);
  except
    MessageDlg('Senden fehlgeschlagen', mtError, [mbOK], 0);
  end;
  slEintrag.Free;
end;
Ist der Spielername und das Passwort gültig kriege ich eine EIdHTTPProtocolException mit message 'HTTP/1.1 302 Found'.
Sind beide ungültig zeigt das Memo den Quelltext. Inhalt: Username oder Pw ungültig.

Das Ergebnis ist das gleiche, wenn ich die Amps "&" weglasse:
Delphi-Quellcode:
  begin
    Add('player=mynick');
    Add('password=asdf3g');
    Add('world=9');
    Add('remember=1');
  end;
Verwende ich statt
Delphi-Quellcode:
  begin
    Add('player=mynick');
    Add('&password=asdf3g');
    Add('&world=9');
    Add('&remember=1');
  end;
das ganze in einem Add:
Delphi-Quellcode:
  begin
    Add('player=mynick&password=asdf3g&world=9&remember=1');
  end;
dann sagt er mir per Quelltext, dass keine Welt gewählt wurde.

Was mach ich bei der Anmeldung falsch?

marabu 13. Feb 2007 10:38

Re: Anmelden per IdHTTP.Post bei IK.de
 
Hallo,

auch wenn es vielleicht nicht den richtigen Durchbruch für dich bringt - um die Ampersands musst du dich eigentlich nicht selbst kümmern, wenn du es so machst:

Delphi-Quellcode:
var
  sURL: string;
  slData: TStrings;
begin
  slData := TStringList.Create;
  sURL :='http://inselkampf.de/index.php';
  with slData do
  begin
    Values['controller'] := 'sessions'
    Values['action'] := 'create';
    Values['player'] := 'mynick';
    Values['password'] := 'asdf3g';
    Values['world'] := '9';
    Values['remember'] := '1';
  end;
  try
    Memo.Text := HTTP.Post(sURL, slData);
  except
    MessageDlg('Senden fehlgeschlagen', mtError, [mbOK], 0);
  end;
  slData.Free;
end;
Grüße vom marabu

sakura 13. Feb 2007 10:45

Re: Anmelden per IdHTTP.Post bei IK.de
 
Meines Wissens nach ist es verboten solche Programme für dieses Browsergame zu nutzen. Auszug aus den Regeln:
Spielregelnvon inselkampf.de
§4 Programme, die Zugriffe automatisieren, die Spieloberfläche verändern oder übermäßig viele Zugriffe generieren, sind auf allen Seiten von INSELKAMPF strengstens verboten.

...:cat:...

th3lol 15. Feb 2007 00:49

Re: Anmelden per IdHTTP.Post bei IK.de
 
@sakuraDa ich lediglich die Rohstoffe auslesen will und die mir zur Verfügung stehenden Bauoptionen fällt dieses Programm meiner Ansicht nach nicht unter das in den Regeln verhängte Verbot.
"die Zugriffe automatisieren" = bots. Ich werde jedoch immernoch einen Check Button haben. Die Übersicht in dem Spiel gefällt mir halt zu wenig.


@marabu: Ich erhalte bei deiner Vorgehensweise ebenfalls eine EIdHTTPProtocolException mit message 'HTTP/1.1 302 Found'.
302 bedeutet doch aber, dass eine Weiterleitung jetzt folgt. Geht das irgendwie zu realisieren?
Denn schließlich landet man im Browser auf
http://213.203.201.100/de/9/index.php?s=123asdf123 .
Und somit tippe ich darauf, dass IdHTTP.Post eine Weiterleitung bekommt, jedoch dieser nicht folgen kann.

Bin für jede Hilfe dankbar!

Gruß,
th3lol

marabu 15. Feb 2007 05:48

Re: Anmelden per IdHTTP.Post bei IK.de
 
Guten Morgen,

du kannst im OI die Eigenschaft HandleRedirects der HTTP-Komponente auf True setzen.

Freundliche Grüße


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