Original von visiomr2008
Wenn man "getallservices" nicht jedesmal aufrufen soll, was wäre denn da eine sinnvolle alternative?
Das kommt darauf an, wie Du die Liste weiterverarbeiten willst. Da Du sicher nicht im Minutentakt die Bouquets änderst, könntest Du das Ergebnis zwischenspeichern und nur von Zeit zu Zeit die Liste abrufen. Ansonsten kannst Du, wie am Beginn dieses Threads geschrieben, mit getservice zuerst die Bouquets und dann deren Inhalt abfragen. Ein
|
Source code
|
1
|
http://dm7025/web/getservices
|
liefert als Ergebnis
|
Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?xml version="1.0" encoding="UTF-8"?>
<e2servicelist>
<e2service>
<e2servicereference>1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet</e2servicereference>
<e2servicename>Favourites (TV)</e2servicename>
</e2service>
<e2service>
<e2servicereference>1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "userbouquet.test___tv_.tv" ORDER BY bouquet</e2servicereference>
<e2servicename>Test (TV)</e2servicename>
</e2service>
</e2servicelist>
|
und den Inhalt der Bouquets bekomme ich
per Browser anschließend mit
|
Source code
|
1
2
|
http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20"userbouquet.favourites.tv"%20ORDER%20BY%20bouquet
http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20"userbouquet.test___tv_.tv"%20ORDER%20BY%20bouquet
|
Wenn Du wget benutzt, gibt es wahrscheinlich irgendwelche unerwarteten Seiteneffekte mit der Interpretation von einigen Zeichen der URL. In der CMD-Konsole von XP sendet der Befehl (das " zusätzlich noch zu %22 geändert)
|
Source code
|
1
|
wget http://dm7025/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20%22userbouquet.test___tv_.tv%22%20ORDER%20BY%20bouquet -O-
|
folgendes an die Box:
|
Source code
|
1
2
3
4
5
|
GET /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type%20==%201)%20FROM%20BOUQUET%20%22userbouquet.test___tv_.tv%22%20ORDER%20BY%20bouquet HTTP/1.0
User-Agent: Wget/1.9.1
Host: dm7025
Accept: */*
Connection: Keep-Alive
|
und bekommt als Antwort die korrekte Senderliste. Der selbe Befehl über die 4NT-Konsole abgesetzt wird zu
|
Source code
|
1
2
3
4
5
|
GET /web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:(type==)20BOUQUET22userbouquet.test___tv_.tv20ORDER20bouquet HTTP/1.0
User-Agent: Wget/1.9.1
Host: dm7025
Accept: */*
Connection: Keep-Alive
|
was natürlich die falsche Syntax ist und als Ergebnis eine leere Senderliste wie aus Deiner Eröffnungsfrage ergibt. Du könntest zur Fehlersuche einen Sniffer auf das wget ansetzen, ich vermute, daß es bei Dir ein ähnliches Problem ist und Du einige Zeichen (das % ist für mich der erste Kandidat) für die Kommandozeile zusätzlich noch maskieren mußt.
Was ist denn der Unterschied zwischen:
|
Source code
|
1
|
http://dm7025/web/getservices?ServiceListBrowse
|
|
Source code
|
1
|
http://dm7025/web/getservices?sRef=
|
Der erste Befehl funktioniert nur in älteren Versionen des WebIf, der zweite nur in neueren. Da ich nicht weiß, welches Image Du benutzt, habe ich lieber beide angegeben.
HeiRos