Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2013, 12:18
mariogzdz
 
Fecha de Ingreso: febrero-2013
Mensajes: 4
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta Problema con return web service PHP NuSOAP

Hola a todos, he revisado un montón de temas que hay sobre este tema pero no consigo dar con la solución.

He creado un web service en php para realizar una inserción de datos en una tabla, este paso lo hace correctamente, pero no logro recibir respuesta, es decir el return parece llegarme como vacío. Os dejo todo el código para ver si véis algo que se me esté pasando.

Código en servidor:

Código PHP:
//llamar a la librería
    
require_once ('lib/nusoap.php');
    
//crear server
    
$server = new soap_server;
    
// initialize WSDL support
    
$server->configureWSDL'addNewPromowsdl' 'urn:addNewPromowsdl' );
    
// place schema at namespace with prefix tns
    
$server->wsdl->schemaTargetNamespace 'urn:addNewPromowsdl';
        
    
$server->wsdl->addComplexType(
        
'MySoapObject'
        
'complexType',
        
'struct',
        
'all',
        
'',
        array(
            
'Nombre' => array('name'=>'Nombre','type'=>'xsd:string'),
            
'Apellidos' => array('name'=>'Apellidos','type'=>'xsd:string'),
            
'Telefono' => array('name'=>'Telefono','type'=>'xsd:string'),
            
'Email' => array('name'=>'Email','type'=>'xsd:string'),
            
'Producto' => array('name'=>'Producto','type'=>'xsd:string')
        )
    );
    
    
$server->wsdl->addComplexType(
        
'MySoapObjectArray',
        
'complexType',
        
'array',
        
'',
        
'SOAP-ENC:Array',
        array(),
        array(array(
'ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:MySoapObject[]')),
        
'tns:MySoapObject'
    
);
    
    function 
ProcessMySoapObject($mySoapObjects) {
    
$mso $mySoapObjects[3];
    
$mso['Name'] = "|||";
    return 
$mso;
    }
    
    
$server->register(
        
'addNewPromo',
        array(
'soapObjects'=>'tns:MySoapObjectArray'),
        array(
'return'=>'tns:MySoapObject'),
        
'addNewPromowsdl',
        
'urn:addNewPromowsdl',
        
'rpc',
        
'encoded',
        
'Inserta datos');
    
    function 
addNewPromo($nombre,$apellidos,$telefono,$email,$producto){
        
$myError false;
        
$myErrorText "";
        
$con mysql_connect("localhost","server1t_wserv","W-123-serv"); //Datos del servidor de base de datos usuario y clave
        
if (!$con) {
            
$myError true;
            
$myErrorText 'Could not connect: ' mysql_error();
            return new 
soap_fault($myErrorText);
        }
        if (
$myError==false)
        {
            
mysql_select_db("server1t_wserv"$con); //Nombre de la base de datos
        
            
$sql="INSERT INTO promos (Nombre, Apellidos, Telefono, Email, Producto) 
            VALUES ('$nombre','$apellidos','$telefono','$email','$producto')"
;
            if (!
mysql_query($sql,$con)) {
                
$myError true;
                
$myErrorText mysql_error();
                return new 
soap_fault($myErrorText);
            }
        }
        
mysql_close($con);
           
$result = array('nombre'=>$nombre,'apellidos'=>$apellidos);
          return 
$result;
    }
    
        
// create HTTP listener
    
$server->service($HTTP_RAW_POST_DATA);
    exit(); 
Código en cliente:

Código PHP:
require_once ('lib/nusoap.php');

$param = array( 'nombre' => 'prueba''apellidos' => 'apellido','telefono' => '0349676767','email' => '[email protected]','producto'=>'cosa');

$client = new nusoap_client('http://server1taumaco.com/WS-nusoap/servicio.php');

$response $client->call('addNewPromo',$param);

if(
$client->fault)
{
    echo 
"FAULT: <p>Code: (".$client->faultcode.")</p>";
    echo 
"String: ".$client->faultstring;
}
else
{
    echo 
$response;
    echo 
"Nombre: ".$response['nombre'];
    echo 
"<br>";
    echo 
"Apellidos: ".$response['apellidos'];

Os dejo también la url de prueba.

http://server1taumaco.com/WS-nusoap/insertaPromo.php

Gracias de antemano por la ayuda.



Un saludo.

Última edición por mariogzdz; 07/02/2013 a las 12:23