Foros del Web » Programando para Internet » PHP »

Creacion de cliente webservice en Delphi, servidor con NuSoap

Estas en el tema de Creacion de cliente webservice en Delphi, servidor con NuSoap en el foro de PHP en Foros del Web. Hola amigos, tengo un formulario en delphi con 2 edit, uno para buscar por nombre y otro por id, y un componente memo para mostrar ...
  #1 (permalink)  
Antiguo 11/04/2014, 10:19
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 11 años, 5 meses
Puntos: 1
Creacion de cliente webservice en Delphi, servidor con NuSoap

Hola amigos, tengo un formulario en delphi con 2 edit, uno para buscar por nombre y otro por id, y un componente memo para mostrar datos de una base de datos.
La base de datos la hice en phpmyadmin y trabajo con xampp corriendo los servicios de mysql y apache, en el localhost.

El codigo del servidor es:

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Modificado para añadir la busqueda por nombre
  4.  
  5. // Modificado para utilizar nuSOAP
  6.  
  7.  
  8. // Deshabilitar cache
  9. ini_set("soap.wsdl_cache_enabled", "0");
  10.  
  11. //llamada a librería nusoap
  12. require_once('lib/nusoap.php');
  13.  
  14. //generar instancia de soap_server
  15. $servidor = new soap_server();
  16. $servidor->configureWSDL('codeappwsdl', 'urn:codeappwsdl');
  17. // Conexion a la Base de Datos
  18. //function dbConnect()
  19. //{
  20.  // $conn=mysql_connect("localhost", "root", "");
  21.  // mysql_select_db('web',$conn);
  22. //}
  23.  
  24.  
  25. // Consultar usuarios por Nombre
  26. // SQL = SELECT * FROM `agenda` WHERE nombre LIKE '%dr%'
  27. function ConsultaUsuarios($nom) {
  28.   //-----------------------------llamada a BD---------------------------------
  29.   //$conn = dbConnect();
  30.   $arrusers = array();
  31.    $conn=mysql_connect("localhost", "root", "");
  32.   mysql_select_db('web',$conn);
  33.   $sql = "SELECT * FROM `web`.`agenda` WHERE nombre LIKE '$nom'";
  34.  
  35.   $result=mysql_query($sql,$conn);
  36.  
  37.   while ($fila= mysql_fetch_array($result)){
  38.     $id=$fila['id'];  
  39.     $nombre=$fila['nombre'];
  40.     $apellidos=$fila['apellidos'];
  41.     $telefono=$fila['telefono'];
  42.     $extension=$fila['extension'];
  43.     $departamento=$fila['departamento'];
  44.     $interno=$fila['interno'];
  45.     $email=$fila['email'];  
  46.  
  47.  
  48.     // Cada registro de información se introduce en un array asociativo
  49.     $arrusers[] = array('Id'=>$id, 'Nombre'=>$nombre, 'Apellidos'=>$apellidos,
  50.                        'Telefono'=>$telefono,
  51.                        'Departamento'=>$departamento,'Email'=>$email);
  52.   }    
  53.   /*----------------------------fin llamada a BD-------------------------------*/
  54.  
  55.   return $arrusers;                        
  56. }
  57.  
  58.  
  59. // Consultar un usuario por ID
  60. function ConsultaUsuario($id) {
  61.   $arrusers = array();          //array para guardar los datos
  62.  
  63.   /*-----------------------------llamada a BD---------------------------------*/
  64.      $conn=mysql_connect("localhost", "root", "");
  65.   mysql_select_db('web',$conn);
  66.  
  67.   $sql="SELECT * FROM `web`.`agenda` WHERE id=$id";
  68.  
  69.   $result=mysql_query($sql,$conn);
  70.  
  71.   while ($fila= mysql_fetch_array($result)){
  72.     $id=$fila['id'];  
  73.     $nombre=$fila['nombre'];
  74.     $apellidos=$fila['apellidos'];
  75.     $telefono=$fila['telefono'];
  76.     $extension=$fila['extension'];
  77.     $departamento=$fila['departamento'];
  78.     $interno=$fila['interno'];
  79.     $email=$fila['email'];  
  80.  
  81.     //Cada registro de información se introduce en un array asociativo
  82.     $arrusers[] = array('Id'=>$id, 'Nombre'=>$nombre, 'Apellidos'=>$apellidos,
  83.                        'Telefono'=>$telefono, 'Extension'=>$extension,
  84.                        'Departamento'=>$departamento, 'Interno'=>$interno, 'Email'=>$email);
  85.   }    
  86.   /*----------------------------fin llamada a BD-------------------------------*/
  87.  
  88.   return $arrusers;
  89. }
  90.  
  91. // Namespace del servicio
  92. $ns = "http://localhost:8080/webservice/listado.php?wsdl";
  93.  
  94. // Establecer nombre y namespace al servicio
  95. $servidor->configureWSDL('Consulta de usuarios',$ns);
  96.  
  97. // configurar la estructura de los datos,
  98. // este arreglo es de tipo asociativo y contiene el nombre y tipo de dato.
  99. $servidor->wsdl->addComplexType(
  100.         'Estructura',
  101.         'complexType',
  102.         'struct',
  103.         'all',
  104.         '',
  105.           array(
  106.             'Id' => array('name' => 'id', 'type' => 'xsd:integer'),
  107.             'Nombre'=>array('name' => 'nombre', 'type' => 'xsd:string'),
  108.             'Apellidos'=>array('name' => 'apellidos', 'type' => 'xsd:string'),
  109.             'Telefono'=>array('name' => 'telefono', 'type' => 'xsd:string'),
  110.             'Extension'=>array('name' => 'extension', 'type' => 'xsd:integer'),
  111.             'Departamento'=>array('name' => 'departamento', 'type' => 'xsd:string'),
  112.             'Interno'=>array('name' => 'interno', 'type' => 'xsd:integer'),
  113.             'EMail'=>array('name' => 'email', 'type' => 'xsd:string')
  114.             )
  115.       );
  116.  
  117. //configurar arreglo de la estructura
  118. $servidor->wsdl->addComplexType(
  119.       'ArregloDeEstructuras',
  120.       'complexType',
  121.       'array',
  122.       'sequence',
  123.       'http://schemas.xmlsoap.org/soap/encoding/:Array',
  124.       array(),
  125.       array(
  126.         array('ref' => 'http://schemas.xmlsoap.org/soap/encoding/:arrayType',
  127.           'wsdl:arrayType' => 'tns:Estructura[]'
  128.         )
  129.       ),'tns:Estructura');
  130.  
  131. // registrar la funcion de consulta de usuario (por ID)
  132. $servidor->register('ConsultaUsuario',
  133.       array('id'=>'xsd:integer'), //tipo de dato entrada
  134.       array('return'=>'tns:ArregloDeEstructuras'), //tipo de dato salida
  135.       $ns, false,
  136.       'rpc', //tipo documento
  137.       'literal', //tipo codificacion
  138.       'Documentacion de consultaUsuarios') ; //documentacion
  139.      
  140.      
  141. // registrar la funcion de consulta de usuario (por nombre)
  142. $servidor->register('ConsultaUsuarios',
  143.       array('nom'=>'xsd:string'), //tipo de dato entrada
  144.       array('return'=>'tns:ArregloDeEstructuras'), //tipo de dato salida
  145.       $ns, false,
  146.       'rpc', //tipo documento
  147.       'literal', //tipo codificacion
  148.       'Documentacion de consultaUsuarios') ; //documentacion
  149.      
  150.  
  151. //Establecer servicio        
  152. if (isset($HTTP_RAW_POST_DATA)) {
  153.   $input = $HTTP_RAW_POST_DATA;
  154. }else{
  155.   $input = implode("\r\n", file('php://input'));
  156. }
  157.  
  158. $servidor->service($input);
  159. ?>

Obviamente accedi en el navegador para obtener la ruta del Webservice, para luego importarla con WSDLImport y generar listado.pas.

Y aqui el error:


Etiquetas: cliente, delphi, formulario, mysql, registro, select, servidor, sql, usuarios, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.