Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme beim Seitenqeulltext anzeigen (https://www.delphipraxis.net/146530-probleme-beim-seitenqeulltext-anzeigen.html)

nahpets 22. Jan 2010 11:17

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,

hier http://stackoverflow.com/questions/3...l-using-delphi gibt es auch ein Beispiel fr Indy, das msste eigentlich so funktionieren.

SeeAALi 22. Jan 2010 12:09

Re: Probleme beim Seitenqeulltext anzeigen
 
danke nahpets,

das funktioniert im prinzip schon, nur bekomme ich nicht die seite angezeigt die ich haben will...

die seite die ich haben will, ist "hinter" einem login.

www.foobar.com/index.html bekomme ich,
aber www.foobar.com/foobar/index.html will ich haben...

Delphi-Quellcode:

function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;



function SendPostData(Ahttp: TIdHTTP; const AtoURL: String; const aParams: TStrings): String;
  //Ahttp: Die HTTP Komponente von Indy 8.0 bzw. 9.0
  //AtoURL: An diese URL werden die Informationen gesendet
  //Result: HTML-Ergebnis (Antwort des Scripts)
Var
  lStream: TMemoryStream; //HTML-Result des PHP-Scripts
  lParams: TStringStream;
  I: Integer;

begin
  Result:='';
  if not Assigned(aHttp) then
    exit;
  lStream := TMemoryStream.create;
  lParams := TStringStream.create('');
  try
    AHTTP.Request.ContentType := 'application/x-www-form-urlencoded';

    //Dieser Stream wird letztendlich gesendet
    //Stream mit Werten fllen
     for I:=0 to aParams.Count-1 do
      begin
      if I = aParams.count-1 then
      lParams.WriteString(aParams[I])
      else
      lParams.WriteString(aParams[I] + '&');
      end;
     try
      //Stream an das PHP-Script senden
      AHTTP.Post(AtoURL,lParams,LStream);
    except
      on E: Exception do
       showmessage('Fehler bei der bertragung: ' + E.Message);
    end;
    SetLength(Result,lStream.Size);
    lStream.Position:=0;
    lStream.ReadBuffer(Result[1],lStream.Size);
  finally
    lParams.Free;
    lStream.Free;
  end;
end;

function GetUrlContent(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  if Assigned(NetHandle) then
  begin
    UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer, SizeOf(Buffer), 0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer, SizeOf(Buffer), 0);
        InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s', [Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;


procedure Tform1.kneipe_todo(todo,comboitem1,comboitem2 : integer;attrib1,attrib2 : string);
var
todo_list : TStringlist;
begin
todo_list := Tstringlist.Create;
case todo of
0 : begin   //Login
      todo_list.add('kneipe='+attrib1);
      todo_list.Add('passwort='+ attrib2);
      todo_list.add('submit_login=Login');
      try
       sendpostdata(IDHTTP1,'/index.html',todo_list);
       memo1.Lines.Add('Login erfolgreich');
      except
       memo1.Lines.Add('Login nicht erfolgreich');
       showmessage('Login nicht erfolgreich');

      end;
    end;
1 : begin // Lager fllen
    case comboitem2 of
      0 : todo_list.add('lager_art=bier');
      1 : todo_list.add('lager_art=schnaps');
      2 : todo_list.add('lager_art=wein');
      3 : todo_list.add('lager_art=longdrinks');
      4 : todo_list.add('lager_art=schampus');
     end;

     case comboitem1 of
      0 : todo_list.Add('wielang=min10');
      1 : todo_list.Add('wielang=min20');
      2 : todo_list.Add('wielang=stunde1');
      3 : todo_list.Add('wielang=stunden2');
      4 : todo_list.Add('wielang=stunden4');
      5 : todo_list.Add('wielang=stunden8');
      6 : todo_list.Add('wielang=stunden12');
     end;

     todo_list.add('submit_bed=Bedienung+schicken');
     try
     //memo1.Lines.Add(todo_list[0] + todo_list[1] + todo_list[2]);
     sendpostdata(IDHTTP1,'/lagerfuellen/index.html',todo_list);
     memo1.Lines.Add('Lager gefllt mit ' + combobox2.Items[comboitem2] + ' fr eine Zeit von ' + combobox1.Items[comboitem1]);
     except
       showmessage('Lager fllen nicht erfolgreich');
     end;
    end;
end;
todo_list.Clear;
todo_list.Free;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
if (labelededit1.Text <> '') and (labelededit2.Text <> '') and (labelededit3.Text <> '') then
 kneipe_todo(0,0,0,labelededit2.Text,labelededit3.Text)
else
showmessage('ALLE FELDER ausfllen');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
login_var := TStringlist.Create;
lager_var := TStringlist.Create;
idHTTP1.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
idHTTP1.Request.AcceptCHarset := 'ISO-8859-1,utf-8;q=0.7,*;q=0.7';
idHTTP1.Request.AcceptEncoding := 'gzip,deflate';
idHTTP1.Request.AcceptLanguage := 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3';
idHTTP1.Request.Connection := 'keep-alive';
idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
idHTTP1.Request.Host := 'www.kneipengame.com';
idHTTP1.Request.Referer := 'http://www.kneipengame.com/index.html';
idHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6';
labelededit1.Text := GetCurrentUserName;
idHTTP1.CookieManager.AddCookie2( labelededit1.Text+'@kneipengame.com','www.kneipengame.com');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
timer1.Enabled := false;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
kneipe_todo(1,combobox1.ItemIndex,combobox2.ItemIndex,'','');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
memo1.Text := geturlcontent('http://www.kneipengame.com/lagerfuellen/index.html');
end;

end.
so mal eben meinen ganzen code , falls ich irgendwas sehr umstndlich mache , nicht dran stren oder einen tip geben wie es besser geht :-D

SeeAALi 22. Jan 2010 13:02

Re: Probleme beim Seitenqeulltext anzeigen
 
Code:
[GET /lagerfuellen/ HTTP/1.1  Host: [url]www.kneipengame.com[/url] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3  Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  Keep-Alive: 300  Connection: keep-alive Referer: [url]http://www.kneipengame.com/premiumstart/[/url] Cookie: __utma=262524630.83278421.1257146671.1264154885.1264161360.260; __utmz=262524630.1257490593.18.3.utmcsr=slye.de|utmccn=(referral)|utmcmd=referral|utmcct=/; PHPSESSID=0ebb33a71043434fe1bbbd1451cb38f7; __utmc=262524630; __utmb=262524630.6.10.1264161360    ]
---------------------------
www-http       0 ACK
---------------------------
www-http    1452 [HTTP/1.1 200 OK Date: Fri, 22 Jan 2010 12:52:59 GMT Server: Apache X-Powered-By: PHP/4.4.9  Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Pragma: no-cache Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 4441  Keep-Alive: timeout=1, max=99  Connection: Keep-Alive Content-Type: text/html            \[sF~V ژ%MB $HHlv=^IfE$$BEjVK~<ÞF @ .ƙ  >}_ gyooy ۟z Y }jg_x w{}i ADqhXȚĶuwvxfg_8 eO}kW j dh #A.: 쳿Kbzw?rhd dnIDSBӡzw U FTPtX >%WͨNdㄤ :LJ:} l4HC2`E /  3 , 0$t`n?  $ ZI! y I- $I,4 eVlb e-s{4*U@ N쿁[  ǑA<% 5,%Y /B2MPЬ, JbAS 4Z杝A :zXh >% B4ٓ?zH + ...to be continued
--------------------------
www-http       0 ACK
das ist das was ich bekomme , wenn ich normal ber die seite navigiere....


Code:
[GET /lagerfuellen/index.html HTTP/1.1  Connection: keep-alive Content-Type: application/x-www-form-urlencoded Host: [url]www.kneipengame.com[/url] Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  Accept-Encoding: gzip,deflate Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3  Referer: [url]http://www.kneipengame.com/lagerfuellen/[/url] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6  Cookie: PHPSESSID=653fd05d5228eb7f29ce39aaca8abdd8    ]
--------------------------------------
www-http       0 ACK
--------------------------------------
www-http    1452 [HTTP/1.1 200 OK Date: Fri, 22 Jan 2010 12:56:56 GMT Server: Apache X-Powered-By: PHP/4.4.9  Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Pragma: no-cache Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 4443  Keep-Alive: timeout=1, max=100  Connection: Keep-Alive Content-Type: text/html            \[sF~V ژ%MB $HHlv=^IfE$$BEjVK~<ÞF @ .ƙ  >}_ gyooy ۟z Y }jg_x w{}i ADqhXȚĶuwvxfg_8 eO}kW j dh #A.: 쳿Kbzw?rhd dnIDSBӡzw U FTPtX >%WͨNdㄤ :LJ:} l4HC2`E /  3 , 0$t`n?  $ ZI! y I- $I,4 eVlb e-s{4*U@ N쿁[  ǑA<% 5,%Y /B2MPЬ, JbAS ... to be continued
www-http       0 ACK
und das bekomme ich zurck wenn ich mit meinem tool navigiere.....

also irgendwas bekomme ich zurck , nur nicht das was ich gebrauchen kann :-D

nahpets 22. Jan 2010 13:16

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,

Du bekommst da was mit gzip gepacktes, dass kannst Du nicht (vernnftig) in einem Memo anzeigen, das musst Du als Datei speichern und entpacken. Danach sollte Dir der "wahre" Inhalt offenbart werden ;-)

SeeAALi 22. Jan 2010 14:07

Re: Probleme beim Seitenqeulltext anzeigen
 
muss ich den umweg ber eine datei gehen ?!

und evtl scvhon mal ein paar links , das ich evtl nicht ganz soviel googlen muss :-D

SeeAALi 22. Jan 2010 14:14

Re: Probleme beim Seitenqeulltext anzeigen
 
ist ja wirklich was gezipptes, mensch was es nicht alles fr sachen gibt :-)
hab mir den kram jetzt mal in eine datei geladen und dann mal so angeschaut, und siehe da es ist genau das was ich haben will :-D

ok dann such ich mal nach zip und unzip fr delphi :-)


ich danke euch :-)

damit wre dieser thread fr beantwortet erklrt

nahpets 22. Jan 2010 14:27

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,
Zitat:

Zitat von SeeAALi
ist ja wirklich was gezipptes, mensch was es nicht alles fr sachen gibt :-)
hab mir den kram jetzt mal in eine datei geladen und dann mal so angeschaut, und siehe da es ist genau das was ich haben will :-D

ok dann such ich mal nach zip und unzip fr delphi :-)


ich danke euch :-)

damit wre dieser thread fr beantwortet erklrt

schau mal hier bei ZipMaster.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Seite 2 von 2     12   

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