Colegas,
Participei do seminário a respeito da macro sc_webservice, mas confesso que sua utilização ainda é confusa para mim:
Criei uma blank (Test_Servidor_Soap), cujo o evento onExecute tem o seguinte código:
sc_include_library("prj", "MinhaClasse", "minhaclasse.class.php", true, true);
$url = "http://http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap/";
$options = array('uri' => $url);
$server = new SoapServer("wsdl", $options);
$server->setClass('MinhaClasse');
$server->handle();
Biblioteca (novo): MinhaClasse:
<?
class MinhaClasse {
function helloWorld ($nome) {
return "Hello World ".$nome;
}
}
?>
App Blank (Test_Cliente_Soap) para consumir o webservice evento onExecute:
Esse código funciona direitinho:
$options = array( 'location' => 'http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap',
'uri' => 'http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap' );
$client = new SoapClient(null, $options);
print_r( $client->helloWorld("Maneco Programer Analist") );
Ms usando a macro não funciona:
$options = array( 'location' => 'http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap',
'uri' => 'http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap' );
//$client = new SoapClient(null, $options);
//print_r( $client->helloWorld("Maneco Programer Analist") );
$arr_param = array(
'trace' => true,
'exceptions' => true,
'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP,
'connection_timeout' => 1000
);
$obj_soap = sc_webservice("soap", 'http://192.168.153.130/sc/8/app/webservice/Test_Servidor_Soap', 80, "", "",$arr_param, 30);
print_r( $obj_soap ->helloWorld("Maneco Programer Analist") );
No exemplo não uso WSDL.