[dss-developer] ds3

Hofmann, Christoph christoph.hofmann at aizo.com
Fri Apr 15 09:20:58 CEST 2011


Hallo Dieter,

curl gibt es eigentlich für alle Betriebssysteme:
http://curl.haxx.se/download.html

Von PHP aus kann man die dSS API benutzen wie jede andere API auch. Unter PHP hilft z.B. die Funktion "file" weiter:
http://php.net/manual/de/function.file.php

Alternativ (und auch unter besserer Kontrolle) kann man die Socketverbindung selber implementieren. Um die API verwenden zu können, musst Du Dir zunächst das Token holen. Das Token kannst Du dann bei den späteren API Aufrufen entweder als GET Parameter übergeben, oder Du sendest es als Cookie mit.
Nachfolgend eine PHP-Funktion um ein Cookie auszulesen. Die Funktion habe ich mal für ein völlig anderes Projekt implementiert für HTTP Verbindungen auf Port 80. Ich denke aber, es sollte ohne viel Aufwand möglich sein, die Funktion an den dSS anzupassen. Das Beispiel zeigt Dir auch, wie man eine Socketverbindung selber aufbaut. Ich hoffe, Du hast etwas Erfahrung mit PHP und der Verwendung von Web-APIs. Es wäre schön, wenn Du aus dem Beispiel eine dSS-API für PHP implementieren und der Community zur Verfügung stellen könntest.

function getCookie($url)
{
   global $cookienumber;
   global $COOKIE;

   $urlfrag = parse_url($url);

   $fp = fsockopen($urlfrag['host'], 80, $errno, $errstr, 5);
   fputs($fp, "GET ".$urlfrag['path']."?".$urlfrag['query']." HTTP/1.1\r\n");
   fputs($fp, "Host: ".$urlfrag['host']."\r\n");
   fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4\r\n");
   fputs($fp, "Connection: close\r\n\r\n");
   $j = 0;
   while (!feof($fp) && ($j<50)) {
       $j++;
       $zeile=fgets($fp);
//       echo $j." ".$zeile."<br>";

       if (substr($zeile,0,12)=="Set-Cookie: ")
       {
          $receivedCookie=trim(substr($zeile,12));
          $COOKIE[$cookienumber] = substr($receivedCookie,0,strpos($receivedCookie,";"));
          $cookienumber++;
       }
   }

   fclose($fp);
}

Hier noch ein bisschen Material zum Lesen:
http://de.wikipedia.org/wiki/Http
http://de.wikipedia.org/wiki/HTTP-Cookie

Grüße
Christoph

--
Christoph Hofmann
aizo ag, Deutschland - http://www.aizo.ag



> -----Ursprüngliche Nachricht-----
> Von: dss-developer-bounces at forum.digitalstrom.org [mailto:dss-
> developer-bounces at forum.digitalstrom.org] Im Auftrag von Dieter Stokar
> Gesendet: Donnerstag, 14. April 2011 18:29
> An: dSS development list
> Betreff: Re: [dss-developer] ds3
> 
> Bestens, jetzt hats geklappt!
> 
> 
> Bleibt die Frage, wie man von einem Windows-PC aus solche Aufrufe
> ausführen könnte.
> 
> Da curl anscheinend im HTTPS-Modus arbeitet, vermute ich, dass sich
> unter Windows auch wget verwenden liesse.
> Hat schon jemand so ein Script geschrieben?
> 
> Oder gäbe es gar eine Möglichkeit, direkt aus PHP heraus solche
> Requests abzusetzen?
> (Letztlich ist es das, was ich in meinem Fall benötige)
> 
> Gruss,
> Dieter
> 
> 
> 
> Am 14.04.2011 um 18:09 schrieb Johannes Winkelmann:
> 
> > On 04/14/2011 05:48 PM, Dieter Stokar wrote:
> >> Hallo Johannes
> >>
> >> Am 14.04.2011 um 17:13 schrieb Johannes Winkelmann:
> > [...]
> >>> Temporär:
> >>> $ DSS_HOST=192.168.2.72 ./ds3 apartment getName
> >>
> >> Da erhalte ich auf dem Mac:
> >>
> >>    sto:~/bin$ DSS_HOST=192.168.111.59 ./ds3 apartment getName
> >>    usage: mktemp [-d] [-q] [-t prefix] [-u] template ...
> >>    mktemp [-d] [-q] [-u] -t prefix
> >
> > okay, mktemp(1) benötigt unter OS X einen Prefix oder ein Template.
> Diese Version sollte dies fixen:
> > http://gitorious.digitalstrom.org/~winkj/dss/winkjs-
> dss/blobs/raw/3e7a1d17c0d32524428e4da1f3bec6ed4e2938e9/tools/ds3
> >
> > Gruss, Johannes
> > --
> > Johannes Winkelmann
> > aizo ag, Switzerland - http://www.aizo.com
> >
> > _______________________________________________
> > dss-developer mailing list
> > dss-developer at forum.digitalstrom.org
> > http://forum.digitalstrom.org/cgi-bin/mailman/listinfo/dss-developer
> 
> _______________________________________________
> dss-developer mailing list
> dss-developer at forum.digitalstrom.org
> http://forum.digitalstrom.org/cgi-bin/mailman/listinfo/dss-developer


More information about the dss-developer mailing list