Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP soap problem
Forum PHP.pl > Forum > PHP
NightKn8
Witam chciałem wysłać przez php soap pewien wpis do urządzenia w sieci lokalnej. Jak na razie idzie marnie. Cel początkowy jaki sobie obrałem to przetestowanie komunikacji. Korzystam z tutoriala: Link
I tak daje mój kod (tam gdzie **** wykropkowane w celach bezpieczeństwa):

  1. <?php
  2.  
  3. $client = new SoapClient(null, array(
  4. 'location' => "http://192.168.1.5:8080/upnpfun/ctrl/uuid_****-1dd2-11b2-bfc9-****/04",
  5. 'uri' => "urn:adbglobal.com:service:X_ADB_RemoteControl:1#ProcessInputEvent",
  6. 'trace' => 1 ));
  7.  
  8. echo("\nDumping client object:\n");
  9. var_dump($client);
  10.  
  11. echo '<br><br>';
  12. echo("\nDumping request headers:\n"
  13. .$client->__getLastRequestHeaders());
  14. echo '<br><br>';
  15. echo("\nDumping request:\n".$client->__getLastRequest());
  16. echo '<br><br>';
  17. echo("\nDumping response headers:\n"
  18. .$client->__getLastResponseHeaders());
  19. echo '<br><br>';
  20. echo("\nDumping response:\n".$client->__getLastResponse());
  21.  
  22. $header = new SoapHeader(
  23. 'u:ProcessInputEvent', 'InputEvent',
  24. 'InputEvent' => 'ev=keydn,code=116'
  25. )
  26. );
  27. ?>


w odpowiedzi dostaje:
  1. Dumping client object: object(SoapClient)#1 (4) {
  2. ["uri"]=> string(65) "urn:adbglobal.com:service:X_ADB_RemoteControl:1#ProcessInputEvent"
  3. ["location"]=> string(81) "http://192.168.1.5:8080/upnpfun/ctrl/uuid_****-1dd2-11b2-bfc9-****/04"
  4. ["trace"]=> int(1) ["_soap_version"]=> int(1) }
  5.  
  6. Dumping request headers:
  7.  
  8. Dumping request:
  9.  
  10. Dumping response headers:
  11.  
  12. Dumping response:

Czyli jak widać nic ;< Czym to może być spowodowane?
Dodam tylko, że programem Device Spy poprawnie wyPOSTowałem wiadomość, która powinna wyglądać:

Origin: OpenSource.UPnP.HTTPSession [2606490]
Time: 2013-04-23 22:00:33

POST /upnpfun/ctrl/uuid_****-1dd2-11b2-bfc9-****/04 HTTP/1.1
SOAPACTION: "urn:adbglobal.com:service:X_ADB_RemoteControl:1#ProcessInputEvent"
CONTENT-TYPE: text/xml; charset="utf-8"
HOST: 192.168.1.5:8080
Content-Length: 376

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:ProcessInputEvent xmlns:u="urn:adbglobal.com:service:X_ADB_RemoteControl:1">
<InputEvent>ev=keyup,code=116</InputEvent>
</u:ProcessInputEvent>
</s:Body>
</s:Envelope>

jak widać powyższe wpisuje do <InputEvent> wartość string: ev=keyup,code=116 i takiż chciałbym efekt końcowy osiągnąć przez PHP ale nie mogę kontynuować gdyż komunikacji brak. Dodam na koniec, że kożystam lokalnie z XAMPP.

edit: nie wiem czy puste pola spowodowane są tym, że nie wywołałem soapCall tak jak w tutorialu z linku? Swoją drogą jak w prosty sposób mogę wpisać wartość 'ev=keyup,code=116' do pola InputEvent:
'InputEvent' => "ev=keyup,code=116" ? Pozdrawiam
Puszy
Naprawdę się starałem zrozumieć o co chodzi ale nie podołałem.

1. Czy pod tym adresem IP jest "postawiony" Serwer SOAPa?
2. Nie rozumiem do końca tych var_dumpów
3. Może podasz jakąś dostępną metodę, getSeverTime czy coś podobnego?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.