Foros del Web » Programando para Internet » PHP »

Con sumir servicio .net desde php

Estas en el tema de Con sumir servicio .net desde php en el foro de PHP en Foros del Web. hola a todos, me acabo de registrar en este sitio y para ir colaborando con ustedes les dejo la forma de consumir un servicio de ...
  #1 (permalink)  
Antiguo 13/05/2011, 16:33
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años, 7 meses
Puntos: 2
Con sumir servicio .net desde php

hola a todos, me acabo de registrar en este sitio y para ir colaborando con ustedes les dejo la forma de consumir un servicio de .net desde php5, espero les ayude.

no olvidar las gracias

primero debemos instanciar la clase soapclient

$cliente= new SoapClient('servicio.asmx?wsdl');

luego ingresemos directamente al servicio en este caso servicio.asmx

luego pinchas el metodo que quieres consumir.

te arrojara un xml algo asi

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<nombremetodo xmlns="http://tempuri.org/...">
<otronombre>
<Var1>string</Var1>
<Var2>long</Var2>
</otronombre>
</nombremetodo >
</soap:Body>
</soap:Envelope>


si se fijan las variables al pasar al servicio son "Var1" y "Var2", las cuales tienen un nodo padre llamado "otronombre" y este a su vez "nombremetodo"

vamos declarar una variable como arreglo en la que iran las variables que pide el servicio

$param=array();
$param['Var1']='datos variable 1';
$param['Var2']='datos variable 2';

si se fijan asigno valores y el nombre de cada valor es el mismo nombre de variable que recibe el servicio

en php se mandan las varibles como arreglo y si en .net estas variables tienen nodos padres, en php se los tienes que mandar como objetos sigamos.

como las variables tienen un nodo padre, quiere decir que este arreglo debe estar en un objeto, esto queda asi

$param=(object) $param;
como vieron el xml en este caso las variables tenia un nodo padre y este otro nodo padre

primero declararemos el nodo padre que sera un array en php

$padre=array();
$padre[otronombre']=$param;

declaramos el nodo padre y le asignamos nodos hijos de este padre

y como 'otronombre' tambien tiene un nodo padre este debe ir en un objeto

$padre=(object) $padre;

despues de tener las variables listas llamamos al metodo

$resultado=$cliente->nombremetodo($padre);

var_dump($resultado);

en resumidas cuentas debe quedar asi;

$cliente= new SoapClient('servicio.asmx?wsdl');

$param=array();
$param['Var1']='datos variable 1';
$param['Var2']='datos variable 2';
$param=(object) $param;
$padre=array();
$padre[otronombre']=$param;
$padre=(object) $padre;
$resultado=$cliente->nombremetodo($padre);
var_dump($resultado);

listo ojala les sea de utilidad.

Etiquetas: net, servicio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:58.