PHP - php - nusoap - devolver arrays.

 
Vista:

php - nusoap - devolver arrays.

Publicado por insignia (1 intervención) el 03/01/2008 17:32:12
Hola muy buenas:

Estoy intentando implementar un webservice, el problema me surje en el servidor a la hora de devolver un array.

Estoy usando la librería nusoap, y si no utilizo el constructor de WSDL, es decir, si accedo directamente al webservice mediante un cliente nusoap llamando al php, no tengo ningún problema puedo recibir arrays y todo lo que quiera. Mi problema, es que el webservice, lógicamente, será llamado desde la web de un cliente, y ni tan siquiera se me ha expecificado en que suelen desarrollar.

El problema surje con WSDL, a la hora de devolver arrays, por ejemplo, estoy intentando devolver un resultado con distintos registros de una base de datos, no me funciona, me devuelve el array vacío, alguien con experiencia en el tema ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:php - nusoap - devolver arrays.

Publicado por Ezkorpyo (1 intervención) el 05/01/2008 18:22:41
insignia, ES LO MISMO QUE YO BUSCO, SI LO ENCUENTRAS ME AVISAS POR FAVOR O SI YO LO ENCUENTRO TE AVISO, SALUDOS, MI CORREO

[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por insignia (1 intervención) el 08/01/2008 11:18:06
Bueno, di con la solución Ezkorpyo no es facil de explicar pero lo intentaré dejandote un ejemplo de Server:

En este server vamos a recorrer una tabla que tiene nick-usuario-email:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?
//incluimos la clase nusoap.php
require_once('lib/nusoap.php');
 
//declaramos el namespace
$ns="http://www.dominio.com/servidor.php";
 
//Setup del WSDL
$server = new soap_server();
$server->configureWSDL('webservice',$ns);
$server->wsdl->schemaTargetNamespace=$ns;
 
//Definimos la estructura de cada registro
$server->wsdl->addComplexType(
'registro',
'complexType',
'struct',
'all',
'',
array(
'nick'=>array('name' => 'nick', 'type' => 'xsd:string'),
'email'=>array('name' => 'email', 'type' => 'xsd:string'),
'telefono'=>array('name' => 'telefono', 'type' => 'xsd:string')
)
);
 
//Definimos la estructura de la matriz que usa los registros
$server->wsdl->addComplexType('estructura', 'complexType', 'array', '',
    'SOAP-ENC:Array', array(),
    array(array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:registro[]')),
     'tns:registro);
//Registramos el método para devolver los valores de la tabla, en este caso es una consulta simple, mediante la cual se devuelven todos los registros de la tabla sin recibir ningún dato del cliente:
$server->register('obtenerdatos',array(),array('return'=>'tns:estructura')); //Definimos que lo que vamos a retornar es una matriz con la estructura "estructura
function obtenerdatos(){
	dbconnect();  //Conexion de la tabla definida en otra función
	$ssql_=mysql_query("SELECT nick, email, telefono FROM usuariostest")or die(mysql_error());
	$numrows=mysql_num_rows ($ssql_);
	$tabla=array();
	for($x = 0; $x < $numrows; $x++) {
		$tabla[]= mysql_fetch_array($ssql_);
	}
	return $tabla;
}
//llamamos al método service de la clase nusoap
$server->service($HTTP_RAW_POST_DATA);
?>

Y listo, de esta manera funciona, yo voy a seguir informandome de todas maneras por si hay algo incorrecto ;)

Saludos y suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Jose Huaraya (1 intervención) el 18/05/2009 02:14:32
Disculpen por la molestia y por revivir esta discucion nuevamente.
es codigo me parece excelente y lo he provado, pero me gustaria que me ayudaran para poder consumir este webservice con c# 2005. Estoy casi 2 semanas tratando de recuperar los datos en un datagridview y no puedo. si alguien sabe, por favor ayudeme.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por zaracato (1 intervención) el 16/10/2009 17:38:20
Lo que necesitas es crear un web service desde .net con la dirección de tu servicio web + ?wsdl,
según el ejemplo mencionado aquí la onda sería
dominio.com/servidor.php?wsdl
y ya .net te reconocería la estructura compleja "registro" y la función obtenerdatos, como características de la clase creada a partir del servidor web.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por jopehi (1 intervención) el 07/06/2009 18:07:52
Cordial saludo.

serias tan amable de indicarme, como se consume desde nusoap en php este array, o como invocas el cliente para que tome el array retornado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Federica Pavese (2 intervenciones) el 15/08/2011 18:11:46
Hola !
Sé que este tema se habló hace mucho, pero estoy usando este ejemplo para crear un web service y algo anda mal.
Cuando la función registrada en el servidor debe devolver un array, tengo el error: "operation nombre_funcion not present in WSDL."
Cuando devuelve un dato simple (entero, string, etc) lo hace perfecto. La conexión a la BBDD funciona bien y la comunicación entre cliente y servidor también.
He chequeado la sintaxis un millón de veces. No sé por qué no ve a la función.
Si alguien puede ayudarme, le agradeceré mucho.

Federica
Mendoza - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Federica Pavese (2 intervenciones) el 16/08/2011 14:47:00
Hola !
Disculpen, ya lo solucioné, había un error de sintaxis al crear el cliente.

Federica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Valexy (1 intervención) el 22/07/2014 21:56:04
Intente usar su codigo pero no entiendo si es un solo archivo o esta dividido en algunos

Hola soy nueva en consumir servicios de nusoap y msql pero tengo un error
cuando ejecuto el archivo servidor.php
http://localhost/servicios/servidor.php?wsdl

Error de lectura XML: declaración de texto o XML en un lugar distinto del principio de la entidad
Ubicación: http://localhost/servicios/servidor.php?wsdl
Número de línea 5, columna 1:<?xml version="1.0" encoding="ISO-8859-1"?>
Y el archivo cliente.php y no muestra los datos desde la Base de Datos,
Por favor responda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por John (1 intervención) el 27/07/2014 19:01:01
Buenas tengo el mismo problema lo as logrado solucionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Jimy Sanchez (1 intervención) el 10/03/2021 03:51:26
Muchas gracias, excelente, me ayudó mucho. 5/5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:php - nusoap - devolver arrays.

Publicado por Naty (1 intervención) el 11/06/2014 03:57:41
yo tambien busco eso jejejeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar