Jump to content


Photo

Problema con respuesta de webservice


  • Please log in to reply
No replies to this topic

#1 squall2501

squall2501

    Advanced Member

  • Miembros
  • PipPipPip
  • 82 posts
  • Locationen oa

Posted 07 March 2012 - 03:30 PM

Hola

Tengo un problema ,ya que me devulve de respuesta

Response not of type text/xml: text/html

boolean false


Lo que quiero hacer es pasar el parametro del id de un usuario y qeu el web service me devuelva los datos de un usuario

La tabla es simplemente una tabla usuarios con usr_id,usr_login,usr_pass

Estoy trabajando con codeigniter

Gracias de antemano

El servidor
[java]

<?php
class Servidor_nusoap extends CI_Controller{

var $NuSoap_server;

function  __construct() {
     
parent::__construct();
     
      // Instanciamos la clase servidor de nusoap
      $this->NuSoap_server = new nusoap_server();

      // Creamos el End Point, es decir, el lugar donde la petición cliente va a buscar la estructura del WSDL
      // aunque hay que recordar que nusoap genera dinámicamente dicha estructura XML
      $end_point = 'http://localhost/ci_...ap/index/wsdl';

     
      $this->NuSoap_server->configureWSDL('UsuariosWSDL', 'urn:UsuariosWDSL', $end_point, 'rpc');

      $this->NuSoap_server->wsdl->addComplexType(
              'Usuarios'        # Creamos nuestro propio tipo de datos, llamado Usuarios, lo vamos a utilizar para regresar la respuesta
              , 'complexType'    # Es de tipo complejo, es decir, un array o array asociativo
              , 'array'          # Su equivalencia en PHP en este caso, es de tipo array, ('struct' equivale a array asociativo)
              , ''              # Composición: 'all' | 'sequence' | 'choice', en nuestro caso no aplica
              , 'SOAP-ENC:Array' # Cómo se debe tratar y validar esta estructura de dato
              , array(          # Los elementos del array
                  'id' => array('name' => 'id', 'type' => 'xsd:int')
                  , 'login' => array('name' => 'login', 'type' => 'xsd:string')
                  , 'pass' => array('name' => 'pass', 'type' => 'xsd:string')
              )
      );
 
  $this->NuSoap_server->register(
           
              'Servidor_nusoap..obtenerUsuario'    # El nombre de la función PHP: Clase.método ó Clase..método
              , array('id' => 'xsd:int')          # Qué datos recibe
              , array('return' => 'tns:Usuarios')  # Qué datos regresa, aquí se aprecia nuestro propio tipo de datos que definimos en addComplexType()
              , 'urn:UsuariosWSDL'                # El elemento namespace de nuestro método
              , 'urn:UsuariosWSDL#obtenerUsuario'  # La acción u operación de nuestro método
              , 'rpc'                              # El estilo del XML
              , 'encoded'                          # Cómo se usa: 'literal' | 'encode'
              , "Provee el nombre completo de un usuario del cual se conoce su ID." # Texto de ayuda de nuestro método
      );

}

function index() {
      $_SERVER['QUERY_STRING'] = '';

      if ( $this->uri->segment(3) == 'wsdl' ) {
        $_SERVER['QUERY_STRING'] = 'wsdl';
      } // endif

      $this->NuSoap_server->service(file_get_contents('php://input'));
  }  // end function

  function obtenerUsuario($id_usuario) {
     
$this->db->where('id', $id_usuario);
    $resultad=$this->db->get('usuarios')->result();
     
foreach($resultad as $resultado){
 
      $row = array(
              array(
                      'id' => $resultado->usr_id
                      , 'login' => $resultado->usr_login
                      , 'pass' => $resultado->usr_pass
              )
      );
}
      return $row;
  } // end function

}
?>
[/java]

Y el cliente

[java]
<?php

class Cliente_nusoap extends CI_Controller{


function  __construct() {
     
parent::__construct();

}

function traer_usuario() {
   
      // Instanciamos la clase cliente de nusoap
      $client = new nusoap_client('http://localhost/ci_...ap/index/wsdl', 'wsdl');
   
      $parts = array('id' => 2);
      $result = $client->call("Servidor_nusoap..obtenerUsuario", $parts);

    $sError = $client->getError();
     
  if($sError){
 
echo $sError;
  }
 

var_dump($result);
//return $result;
print_r($result);


  }


}


?>

[/java]
  • 0




IP.Board spam blocked by CleanTalk.