Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Über HTTP etwas empfangen (https://www.delphipraxis.net/26080-ueber-http-etwas-empfangen.html)

hummer 17. Jul 2004 19:07


Über HTTP etwas empfangen
 
Hallo!
So jetzt gibt es auch Befehle wie
Code:
http://192.168.0.200/apigetstatus.asp
die etwas zurückliefern. Das möchte ich jetzt gerne empfangen und in einer Listbox ausgeben. Ich weiß nicht was für Dateien da ankommen. Wenn ich den Befehl in einem Browser ausführe zeigt er mir das an:
Code:
[Status]
CurrTime=2765026
PlayQUpdateTime=2749190
CurrVolume=-17
STOP_LED=0
PLAY_LED=1
PAUSE_LED=0
RANDOM_LED=0
GROUP_LED=0
MUTE_LED=0
REPEAT_LED=0
State=   Playing
QueueLen=1
CurrIndex=0
CurrPlayTime=2005
TotalTime=0
Title=
Artist=radioioJAZZ
Genre=Jazz & Blues
Source=URL
SourceID=http://radioio.sc.llnwd.net:8090/listen.pls
NextIndex=0
NextTitle=None Available, Not active
NextArtist=radioioJAZZ
NextGenre=Jazz & Blues
NextSource=URL
NextSourceID=http://radioio.sc.llnwd.net:8090/listen.pls
[End Status]
Genau das möchte ich jetzt empfangen und in einer Listbox ausgeben. In meiner Anleitung steht:
Code:
This is raw text and not html formatted
Vielen Dank schonmal.

Ultimator 17. Jul 2004 19:10

Re: Über HTTP etwas empfangen
 
Um welche Anleitung handelt es sich bei dir?
Du könntest es mit den Indys probieren:
Delphi-Quellcode:
Memo1.Text:=IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp');

hummer 17. Jul 2004 19:13

Re: Über HTTP etwas empfangen
 
Werd ich mal probieren. Ich habe einen Netzwerk MP3 Spieler für meine Stereoanlage und der hat eine eigene API. Und mit der will ich ein Programm schreiben mit dem ich den MP3 Spieler von einem PC aus steuern kann.

hummer 17. Jul 2004 19:20

Re: Über HTTP etwas empfangen
 
Danke dass geht schonmal. Nur die Zeilenumbrüche werden natürlich nicht angezeigt.

Gibt es vielleicht ne Möglichkeit, dass direkt in eine Variable zu speichern, sodass man das hinterher zeilenweise auslesen kann?

S2B 17. Jul 2004 19:21

Re: Über HTTP etwas empfangen
 
Tu es doch in ne StringList und dann eine Zeile nach der anderen durchsuchen! :wink:

Edit: Dann kannst das ganze aber auch gleich im Memo machen! :mrgreen:

hummer 17. Jul 2004 19:59

Re: Über HTTP etwas empfangen
 
Wie kann ich das denn in eine Stringliste schreiben? Memo ist ungünstig weil ich es nicht so ausgeben will. Das war nur erstmal um zu probieren wie ich die Dateien empfangen kann.

Ultimator 17. Jul 2004 20:05

Re: Über HTTP etwas empfangen
 
Delphi-Quellcode:
StringList1.Lines.Loadfromfile(IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp'));
Könnte das so gehen? (Habs nicht getestet)

Wenn nicht, dann auf jeden Fall denk ich so:
Delphi-Quellcode:
Memo1.Text:=IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp'));
Memo1.Lines.SaveToFile('Da.tei');
StringList1.Lines.LoadfromFile('Da.tei');
Du kannst ja das Memo auf Visible:=false stellen und nach dem Schließen des Programms die Datei Da.tei wieder löschen-

Die Muhkuh 17. Jul 2004 20:46

Re: Über HTTP etwas empfangen
 
oder:

Delphi-Quellcode:
var
  S : String;
  SL : TStringList;
begin
  S := IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp');
  SL := TStringList.Create;
  try
    SL.Add(S);
  finally
    SL.Free;
  end;
end;

Calimero 18. Jul 2004 10:31

Re: Über HTTP etwas empfangen
 
Mach es doch lieber mit der Indy TCP Client / Server Komponente. :-)

SirThornberry 18. Jul 2004 11:06

Re: Über HTTP etwas empfangen
 
wenn du das ganze in eine Datei speicher willst dann geht das so
Delphi-Quellcode:
var LStream: TStream;
begin
  LStream := TFileStream.Create('Da.tei', fmCreate);
  idhttp1.Get('http://192.168.0.200/apigetstatus.asp', LStream);
  LStream.Free;
ansonsten liefert der idhttp1.Get die Webseite in einem String oder Stream zurück je nachdem welche Methode du verwendest.

Delphi-Quellcode:
var LSeite: String;
begin
  LSeite := idhttp1.Get(''http://192.168.0.200/apigetstatus.asp');
  //jetzt ist das was du sonst im Browser siehst in der varialben "LSeite" und den Inhalt musst du jetzt je nach dem was du vor hast parsen

Ultimator 18. Jul 2004 11:20

Re: Über HTTP etwas empfangen
 
[Aufgrung WIRKLICH unsinniger Ansagen ausradiert :mrgreen: [/edit]

Meflin 18. Jul 2004 11:27

Re: Über HTTP etwas empfangen
 
also der indy tcp client ist a bissel was anderes wie der indy http client... :wink:

Ultimator 18. Jul 2004 11:29

Re: Über HTTP etwas empfangen
 
:oops: *pfiffel*
Aber wie soll man den denn benutzen, wenn man die Ausgabe von einer Webseite haben will?

Meflin 18. Jul 2004 11:32

Re: Über HTTP etwas empfangen
 
tja eigentlich garnet. ich frag mich auch wie er des meint...

S2B 18. Jul 2004 11:41

Re: Über HTTP etwas empfangen
 
Zitat:

Zitat von Spider
oder:

Delphi-Quellcode:
var
  S : String;
  SL : TStringList;
begin
  S := IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp');
  SL := TStringList.Create;
  try
    SL.Add(S);
  finally
    SL.Free;
  end;
end;

Irgendwie ist das ein bisschen umständlich! So wäre es viel einfacher zu lösen:
Delphi-Quellcode:
var
  SL : TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Text:=IdHTTP1.Get('http://192.168.0.200/apigetstatus.asp');
  finally
    SL.Free;
  end;
end;

Die Muhkuh 18. Jul 2004 11:49

Re: Über HTTP etwas empfangen
 
Ich weiß, aber so kann man die Variable S nochmal verändern während in der Stringlist das Original drinne steht.

hummer 18. Jul 2004 12:23

Re: Über HTTP etwas empfangen
 
Habe das jetzt in eine Stringlist geschrieben, aber ich mußte das SL.free weglassen, weil es sonst immer eine Zugriffsverletzung gegeben hat wenn ich auf die Stringlist zugreifen wollte.

SirThornberry 18. Jul 2004 12:53

Re: Über HTTP etwas empfangen
 
das SL.Free muss auch hinter alle anderen Anweisungen die, die Stringlist verwenden da diese ja sonst vorher wieder freigegeben wird. Weglassen würde ich die aber auf keinen Fall da es sonst bei häufiger Verwendung ein Riesenspeicherleck darstellt


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.

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