29/07/2010, 08:11
|
| | | Fecha de Ingreso: diciembre-2002 Ubicación: santiago-chilito
Mensajes: 1.931
Antigüedad: 22 años 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" |