Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Per HTTP einen Befehl senden (https://www.delphipraxis.net/26074-per-http-einen-befehl-senden.html)

hummer 17. Jul 2004 16:51


Per HTTP einen Befehl senden
 
Hallo!
Ich habe ein Gerät, dass ich fernsteuern kann. Die Befehle werden per HTTP versand. Wie kann ich jetzt z.B. einen Befehl
Code:
http://192.168.0.200/apicmd.asp?cmd=play
per http versenden?

Vielen Dank schonmal!

Chewie 17. Jul 2004 17:08

Re: Per HTTP einen Befehl senden
 
Hier im Forum suchenIndy oder gleich Hier im Forum suchenIdHTTP Get
Sollten genug Beispiele dabei sein.

hummer 17. Jul 2004 17:14

Re: Per HTTP einen Befehl senden
 
Danke werds mir mal anschauen.

Rackergen2 17. Jul 2004 17:28

Re: Per HTTP einen Befehl senden
 
Benutze nicht den POST-Befehl, sondern den GET Befehl... bei Indy hatte ich probleme, ich benutze immer diese Funtion:

Delphi-Quellcode:
Function GetHTML(AUrl: string): string;
var
  databuffer : array[0..4095] of char;
  ResStr : string;
  hSession, hfile: hInternet;
  dwindex,dwcodelen,dwread,dwNumber: cardinal;
  dwcode : array[1..20] of char;
  res   : pchar;
  Str   : pchar;
begin
  ResStr:='';
  hSession:=InternetOpen('InetURL:/1.0',
                         INTERNET_OPEN_TYPE_PRECONFIG,
                         nil,
                         nil,
                         0);
  if assigned(hsession) then
  begin
    hfile:=InternetOpenUrl( 
           hsession,
           pchar(AUrl),
           nil,
           0,
           INTERNET_FLAG_RELOAD,
           0);
    dwIndex := 0;
    dwCodeLen := 10;
    HttpQueryInfo(hfile,
                  HTTP_QUERY_STATUS_CODE,
                  @dwcode,
                  dwcodeLen,
                  dwIndex);
    res := pchar(@dwcode);
    dwNumber := sizeof(databuffer)-1;
    if (res ='200') or (res ='302') then
    begin
      while (InternetReadfile(hfile,
                              @databuffer,
                              dwNumber,
                              DwRead)) do
      begin
        if dwRead =0 then
          break;
        databuffer[dwread]:=#0;
        Str := pchar(@databuffer);
        resStr := resStr + Str;
      end;
    end
    else
      ResStr := 'Status:'+res;
    if assigned(hfile) then
      InternetCloseHandle(hfile);
  end;
  InternetCloseHandle(hsession);
  Result := resStr;
end;
Aufrufen kannst du die Funktion dann so:

Delphi-Quellcode:
GetHTML('http://192.168.0.200/apicmd.asp?cmd=play&action=wasweissich');
Möglicherweise in eine Variable rein und du hast die Antwort... so hab ich's bei unserem Router gemacht...

himitsu 17. Jul 2004 17:43

Re: Per HTTP einen Befehl senden
 
ShellExecute wäre auch noch 'ne Möglichkeit:

Delphi-Quellcode:
ShellExecute(0, nil, 'http://192.168.0.200/apicmd.asp?cmd=play', nil, nil, 0);

S := 'http://192.168.0.200/apicmd.asp?cmd=play';
ShellExecute(0, nil, PChar(S), nil, nil, 0);

Rackergen2 19. Jul 2004 16:52

Re: Per HTTP einen Befehl senden
 
Öffnet sich dann nicht der Browser?

phXql 19. Jul 2004 17:06

Re: Per HTTP einen Befehl senden
 
nein, da das command 'open' fehlt..


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