| 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: 12 let
|
|||
0