Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2010, 08:11
Avatar de mveraa
mveraa
 
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 21 años, 4 meses
Puntos: 2
Respuesta: consumir webservice con array vb2005

bueno continuo con la investigacion.

ahora lo intente con este webservice en php , que tambien pasa como array la diferencia que note que en vb.net me permite hacer esto


Public pruebam As localhost.MiWebService
Public respuesta As Array //con el webservice anterior no me dejaba declararlo array


ya que antes no me lo permitia y me decia que venia como string
pero al ejecutar este codigo , que pongo dentro de un boton me pasa lo mismo . me dice que no trae nada.

respuesta = pruebam.ListarProductos("x")
MsgBox(respuesta)



-el webservice servidor php lo probe con un cliente php y funciono bien.

server.php

require_once('nusoap.php');

$server = new soap_server;

$ns="http://localhost/webservice/nusoap/lib/"; // espacio de nombres; Sitio donde estará alojado el web service
$server->configurewsdl('MiWebService'); //nombre del web service
$server->wsdl->schematargetnamespace=$ns;

/************ REGISTRANDO EL ARRAY A DEVOLVER(array de productos) **************/
$server->wsdl->addComplexType(
'ArregloProductos', // Nombre
'complexType', // Tipo de Clase
'array', // Tipo de PHP
'', // definición del tipo secuencia(all|sequence|choice)
'SOAP-ENC:Array', // Restricted Base
array(),
array(
array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Productos[]') // Atributos
),
'tns:Productos'
);

/************ REGISTRANDO LA ESTRUCTURA DE DATOS PRODUCTOS **************/
$server->wsdl->addComplexType('Productos', 'complexType', 'struct', 'all', '',
array(
'rut'=> array('name' => 'ProductoID','type' => 'xsd:int'),
'nombre' => array('name' => 'Nombre', 'type' => 'xsd:string')
)
);

/*METODO DEL WEB SERVICE*/
function ListarProductos($estado){



$id=mysql_connect("localhost","root","")or die ("clave fallo");
$conexion=mysql_select_db("aseo",$id) or die("no se pudo conectar");
$db="aseo";

$a=" SELECT nombre, rut FROM `reclamo` ";

$sql=$a;
$result=mysql_query($sql) or die ("error en query");




while($row = mysql_fetch_assoc($result))
{
$toc[$i]['nombre'] = $row["nombre"];
$toc[$i]['rut'] = $row["rut"];

$i++;
}
$result->free; //liberando memoria
return $toc;



}

/************ REGISTRANDO EL METODO **************/
$server->register(
'ListarProductos', // Nombre del Método
array('estado' => 'xsd:string' ), // Parámetros de Entrada
array('return' => 'tns:ArregloProductos') //Datos de Salida
);


/******PROCESA LA SOLICITUD Y DEVUELVE LA RESPUESTA*******/
$input = (isset($HTTP_RAW_POST_DATA)) ? $HTTP_RAW_POST_DATA : implode("\r\n", file('php://input'));
$server->service($input);
exit;
?>



saludos y gracias.
__________________
"Cuando se adelanta un oponente, enfréntalo y salúdalo; si intenta retroceder, déjalo seguir su camino"