Foros del Web » Programando para Internet » PHP »

Consumir web service desde php

Estas en el tema de Consumir web service desde php en el foro de PHP en Foros del Web. Hola dado que otros temas no han dado resultado , voy a intentar explicARME MEJOR. Necesito una guia para crear un archivo en php que ...
  #1 (permalink)  
Antiguo 25/09/2015, 10:00
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Consumir web service desde php

Hola dado que otros temas no han dado resultado , voy a intentar explicARME MEJOR.

Necesito una guia para crear un archivo en php que conecte con un webservice , que la funcion de este es hacer login en un servidor
  #2 (permalink)  
Antiguo 25/09/2015, 13:41
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Consumir web service desde php

El consumo de un webservice es muy simple con los mecanismos nativos de php:

Código PHP:
Ver original
  1. $client = new SoapClient('http://url_webservice');//la url del webservice completa, hasta el wsdl
  2.  try{
  3.      $response = $client->__soapCall("metodoAconsumir",  array('parametros del WS'));
  4.     //en response obtienes la respuesta
  5. } catch (SoapFault $soapFault) {
  6.     // var_dump($soapFault);
  7.     // echo "Request :<br>", htmlentities($client->__getLastRequest()), "<br>";
  8.     return "Response :<br>". htmlentities($client->__getLastResponse()). "<br>";
  9. }

si hubiera un fallo, en

$client->__getLastRequest() puedes ver la petición que mandaste
$client->__getLastResponse() puedes ver la respuesta del WS, a veces si el xml de respuesta contiene basura, la recepción de la respuesta falla pero aquí puedes ver si el problema del WS o de tu código

Otra opción si tu php no tiene esto, podrías usar la librería nusoap, pero es algo más complicada de usar.
  #3 (permalink)  
Antiguo 28/09/2015, 05:41
 
Fecha de Ingreso: febrero-2011
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Consumir web service desde php

gracias por tu rapida respuesta pero no entiendo la parte de metodo a consumir
para que te hagas una idea es un web service de login
Código HTML:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:microsoft-dynamics-schemas/codeunit/WSTrucksAut" targetNamespace="urn:microsoft-dynamics-schemas/codeunit/WSTrucksAut">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:microsoft-dynamics-schemas/codeunit/WSTrucksAut">
<element name="LoginCheck">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="user" type="string"/>
<element minOccurs="1" maxOccurs="1" name="password" type="string"/>
</sequence>
</complexType>
</element>
<element name="LoginCheck_Result">
<complexType>
<sequence/>
</complexType>
</element>
</schema>
</types>
<message name="LoginCheck">
<part name="parameters" element="tns:LoginCheck"/>
</message>
<message name="LoginCheck_Result">
<part name="parameters" element="tns:LoginCheck_Result"/>
</message>
<portType name="WSTrucksAut_Port">
<operation name="LoginCheck">
<input name="LoginCheck" message="tns:LoginCheck"/>
<output name="LoginCheck_Result" message="tns:LoginCheck_Result"/>
</operation>
</portType>
<binding name="WSTrucksAut_Binding" type="tns:WSTrucksAut_Port">
<binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="LoginCheck">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:microsoft-dynamics-schemas/codeunit/WSTrucksAut:LoginCheck" style="document"/>
<input name="LoginCheck">
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</input>
<output name="LoginCheck_Result">
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
</output>
</operation>
</binding>
<service name="WSTrucksAut">
<port name="WSTrucksAut_Port" binding="tns:WSTrucksAut_Binding">
<address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="http://echidna:7047/DynamicsNAV/WS/ReplaceWithAPercentEncodedCompanyName/Codeunit/WSTrucksAut"/>
</port>
</service>
</definitions> 
Esto es el xml que devuelve el web service
Podrias explicarme como lo debbo hacer

Gracias

Etiquetas: consumir, service
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




La zona horaria es GMT -6. Ahora son las 14:46.