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');