Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/05/2011, 11:02
jjkun
 
Fecha de Ingreso: febrero-2011
Mensajes: 9
Antigüedad: 13 años, 2 meses
Puntos: 0
array de cadenas como parametro en NuSoap

Hola.

Estoy haciendo una aplicacion con servicios web en donde el servidor esta hecho en php con NuSoap y un cliente en C#.

Si paso una cadena como parametro me funciona bien pero como le hago para pasar varias cadenas es decir un array de cadenas y que mi servicio las procese.

Explico lo que mi aplicacion hace:

1.- El servidor recibe la cadena( que en este caso es una sentencia sql) y la procesa
2.- El cliente envia la cadena(sentencia sql) y espera el numero de filas afectadas con un entero.

Anexo codigo:
//Servidor PHP
<?php
//incluimos la clase nusoap.php
require_once('lib/nusoap.php');

$server = new nusoap_server();
$server->configureWSDL('guardarregistro', 'urn:guardarregistro');
$server->register('guardarregistro',
array('sentencia'=>'xsd:string'),
array('num'=>'xsd:int'),
'urn:guardarregistro',
'urn:guardarregistro#guardarregistro',
'',
'encoded',
'Ingresa datos a la base de datos recibiendo un array de string');


function guardarregistro($sentencia)
{
$conexion = mysql_connect("localhost","user","");
mysql_select_db("db");
mysq_query($sentencia,$conexion);
$num = mysql_affected_rows();
}
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
//Cliente C# (aplicacion de consola)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PruebaWS2
{
class Program
{
static void Main(string[] args)
{
Referencia.guardarregistro ws = new Referencia.guardarregistro();
int n = ws.Callguardarregistro("insert into tabla values('','','')");
Console.Write(n);
}
}
}

Porfa necesito su ayuda, intente hacer esto:

$server->register('guardarregistro',
array('sentencia'=>'xsd:string[]'), //Aqui intente declararlo como array pero lo sigue tomando como una cadena, al igual si pongo xsd:Array
array('num'=>'xsd:int'),
'urn:guardarregistro',
'urn:guardarregistro#guardarregistro',
'',
'encoded',
'Ingresa datos a la base de datos recibiendo un array de string');