Autor | Zpráva | ||
---|---|---|---|
ondra256 Profil |
#1 · Zasláno: 22. 9. 2014, 12:31:02
Zdravím,
snažím se rozpohybovat soap jak ze strany serveru tak ze strany clienta. Nikdy jsem to nedělal a potřebuju pomoct nejspíše s tím serverem. Mám to zatím na localhostu. <?php class Server { public function Import(array $data) { $server = new SoapServer(NULL, array('encoding'=>'UTF-8', "uri"=>"http://localhost/soapServer.php")); $server->handle(); $f =fopen("news.txt", "w"); //otevření souboru fwrite($f, "funguje to, jmeno je: ".$data->name); fclose($f); } } ?> $client = new SoapClient(NULL, array( "location" => "http://localhost/soapServer.php", "uri" => "http://localhost/client.php", )); $result = $client->__soapCall("Import", array( "name" => "zkušební jméno", ) )); Chybu mně to žádnou nevyhazuje, ale ani se neprovede zápis do souboru, že to funguje. |
||
ondra256 Profil |
#2 · Zasláno: 22. 9. 2014, 20:43:14
Nebo nemáte někdo příklad jednoduchého soap serveru a clienta, který funguje?
|
||
Davex Profil |
#3 · Zasláno: 22. 9. 2014, 23:09:45
ondra256:
Tu třídu musíš definovat jako obsluhu instance třídy SoapServer . Nezkoušel jsem to.
<?php class Server { public function Import(array $data) { $f =fopen("news.txt", "w"); //otevření souboru fwrite($f, "funguje to, jmeno je: ".$data['name']); fclose($f); } } $server = new SoapServer(NULL, array('encoding'=>'UTF-8', "uri"=>"http://localhost/soapServer.php")); $server->setClass("Server"); $server->handle(); ?> |
||
ondra256 Profil |
#4 · Zasláno: 23. 9. 2014, 13:49:18
Jo super, díky už to funguje.
Jen mám teď problém s odeslanými daty. Kdzyž je chci na serveru zapsat do souboru tak místo celého řetězce se vypíše pouze první znak řetězce a když přidám atribut prijmeni a chci ho na serveru vypsat tak se vypíše opět první znak ALE JMÉNA ( NE PŘÍJMENÍ ) <?php class Server { public function import(array $data) { $f =fopen("news.txt", "w+"); //otevření souboru $output = "Vystup: ".$data['jmeno']. ", ".$data['prijmeni']; fwrite($f, $output); fclose($f); } } $server = new SoapServer(NULL, array('encoding'=>'UTF-8', "uri"=>"http://localhost/system/bin/soapServer.php")); $server->setClass("Server"); $server->handle(); ?> klient $data = array( "jmeno" => "ondra", "prijmeni" => "novak" ); $result = $client->__soapCall("import",$data); Lámu si nad tím hlavu, ale opravdu netuším co s tím, nikdy se mně nic takového nestalo |
||
Davex Profil |
#5 · Zasláno: 23. 9. 2014, 19:22:23
Metoda
__soapCall() očekává v druhém parametru pole argumentů, takže asi bude nutné pole obalit do pole.
$result = $client->__soapCall("import", array('data' => $data)); |
||
ondra256 Profil |
#6 · Zasláno: 23. 9. 2014, 22:53:30
Funguje, dík
|
||
Časová prodleva: 10 let
|
0