Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

SOAP server v PHP

Ahoj,
mám problém s implementací jednoduchého SOAP serveru v PHP.
Půjde o jednoduché API, kde bude z počátku implementována jedna metoda, která zapíše požadavek do DB a výstupem bude jen kód záznamu.
Potřeboval bych nasměrovat například na návod step by step jak implementovat (případně nastavit WAMP localhost) tak, aby mi fungoval server a client třeba jen na "HelloWorld!", každý na jiné doméně (lokálně soapserver.test a soapclient.test). Pro virtualizaci hostu používám utilitku Telerik Fiddler 4, je možné, že v tom je problém?
Hodiny googlím, píši a testuji, ale nedaří se mi rozchodit.
Předem díky za jakoukoli pomoc.
Tonda
11. 1. 2017 14:55:29
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249503
TomasX
verified
rating uzivatele
(4 hodnocení)
11. 1. 2017 16:01:48
lepší by bylo ukázat kód a říct, které chyby ti kdy vyskakují, tohle je dost široké téma...
11. 1. 2017 16:01:48
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249502
Díky moc za reakci,
dávám sem tedy kódy, které jsem řešil podle video návodu. V tomhle případě jde o nejjednodušší strukturu, bez wsdl souboru.
Server
class Server {
public function __construct() {
}
public function getModelName($id_array){
return "$models_id = Škoda Octavia";
}
}
$params = array('uri' => 'soapserver.test/server.php');
var_dump($server = new SoapServer(NULL, $params));
$server->setClass('Server');
$server->handle();
Client
class Client{
public function __construct() {
$params = array(
'location' => 'http://soapserver.test/server.php',
// 'uri' => 'urn://soapserver.test/server.php',
'uri' => 'soapserver.test/server.php',
'trace' => 1
);
$this->instance = new SoapClient(NULL, $params);
}
public function getModelName($id_array){
return $this->instance->__soapCall('getModelName', $id_array);
}
}
$client = new Client();
a service, která je volána na straně clienta
include './client.php';
try{
$id_array = array('id' => '443');
echo $client->getModelName($id_array);
}
catch(SoapFault $e){
echo "
";
print_r($e);
echo "
";
echo "--------------------------------------------------------------
";
echo $e->xdebug_message;
}
a výsledkem je message "Could not connect to host",
přesně:
Možná mám špatně nastaveny parametry pro připojení, nebo nastavení WAMPu, nebo to blokuje Fiddler .. ? Musí být nějak nastaveny proxy?
12. 1. 2017 10:43:10
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249501
TomasX
verified
rating uzivatele
(4 hodnocení)
12. 1. 2017 10:59:53
ano, podle chyby máš špatně nastavené domény. Zkus v prohlížeči http://soapserver.test/server.php a zkoušej to tak dlouho, dokud ti v prohlížeči nepůjde načíst tahle adresa (klidně s chybou), vykašli se v první řadě i na ty domény a klidně zatím pracuj s localhost
12. 1. 2017 10:59:53
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249500
Nějak nechápu v jakym momentě server vyhodí chybovou hlášku, nebo že by nešel načíst?
Tohle právě zkouším na localhostu, domény mám nasměrovány přes fiddler na localhost - a ten používá proxy nějakým způsobem, nevím, jestli tohle nemůže být taky příčinou
12. 1. 2017 12:33:03
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249499
TomasX
verified
rating uzivatele
(4 hodnocení)
12. 1. 2017 12:45:13
pro ten server adresa "soapserver.test/server.php" není dostupná, proto píšu ať jí vyzkoušíš v prohlížeči, jestli tam vůbec něco běží.
12. 1. 2017 12:45:13
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249498
Jo takhle :), ono na soapserver.test nic není, tuhle doménu mám nasměrovanou k sobě na localhost, stejně jako bych zadal http://localhost:81/SOAPserver/server.php .
Co zabralo, je nepoužívat nástroj fiddler, který brání v připojení kvůli proxy.
Teď se připojím, ale už řeším problémy dál, tak snad to rozběhám.
Každopádně díky za reakce, které mě k tomu navedly :).
12. 1. 2017 13:33:33
https://webtrh.cz/diskuse/soap-server-v-php/#reply1249497
Pro odpověď se přihlašte.
Přihlásit