Foros del Web » Programando para Internet » PHP »

PHP OO Consumir un WebService PHP5

Estas en el tema de Consumir un WebService PHP5 en el foro de PHP en Foros del Web. Cordial saludo, Estoy novato con el tema de consumir un Webservice usando PHP5 y su nueva función "soap" y no "nusoap" de PHP4. Algún ejemplo ...
  #1 (permalink)  
Antiguo 11/01/2012, 22:00
 
Fecha de Ingreso: enero-2012
Mensajes: 2
Antigüedad: 12 años, 10 meses
Puntos: 1
Consumir un WebService PHP5

Cordial saludo,

Estoy novato con el tema de consumir un Webservice usando PHP5 y su nueva función "soap" y no "nusoap" de PHP4.

Algún ejemplo se los agradecería mucho de ante mano.

Mil gracias
  #2 (permalink)  
Antiguo 16/01/2012, 08:15
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Consumir un WebService PHP5

http://www.w3schools.com/soap/default.asp
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 25/01/2012, 18:29
Avatar de solinem  
Fecha de Ingreso: diciembre-2007
Mensajes: 61
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Consumir un WebService PHP5

Cita:
Se ha escrito mucho sobre SOAP, pero realmente es escasa la documentación e información de cómo imlementar el uso de esta tecnología en PHP.
Si requerimos enviar toda una solicitud en XML, resulta demasiado difícil, ya que no he podido encontrar ningún documento dónde diga cómo hacerlo.
Tengo el siguiente ejemplo:
necesito enviar este request SOAP
[XML]
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:m0="http://schemas.lodgin.com/webservices/hotelv3">
<SOAP-ENV:Header>
<m:AuthenticationHeader xmlns:m="http://schemas.lodgin.com/webservices/authentication">
<m:LoginName>username</m:LoginName>
<m:Password>xxxxx</m:Password>
<m:Culture>en_US</m:Culture>
<m:Version>8.5</m:Version>
</m:AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<m:SearchHotelsById xmlns:m="http://lodgin.com/webservices/hotelv3">
<m:request>
<m0:HotelIdsInfo>

<!--We are searching here for 3 rooms-->
<m0:HotelIdInfo id="4359"/>
</m0:HotelIdsInfo>
<m0:CheckIn>2012-02-13</m0:CheckIn>
<m0:CheckOut>2012-02-17</m0:CheckOut>
<m0:RoomsInformation>

<!--First room: 2 adults-->
<m0:RoomInfo>
<m0:AdultNum>2</m0:AdultNum>
<m0:ChildNum>0</m0:ChildNum>
<m0:ChildAges>
<m0:ChildAge age="0"/>
</m0:ChildAges>
</m0:RoomInfo>

<!--Second room: 3 adults and 1 Child-->
<m0:RoomInfo>
<m0:AdultNum>3</m0:AdultNum>
<m0:ChildNum>1</m0:ChildNum>
<m0:ChildAges>
<m0:ChildAge age="6"/>
</m0:ChildAges>
</m0:RoomInfo>

<!--Third room: 1 adult-->
<m0:RoomInfo>
<m0:AdultNum>1</m0:AdultNum>
<m0:ChildNum>0</m0:ChildNum>
<m0:ChildAges>
<m0:ChildAge age="0"/>
</m0:ChildAges>
</m0:RoomInfo>

</m0:RoomsInformation>
<m0:MaxPrice>0</m0:MaxPrice>
<m0:StarLevel>0</m0:StarLevel>

<!--NEW in V3! let to search for available or on request rooms-->
<m0:AvailableOnly>true</m0:AvailableOnly>
</m:request>
</m:SearchHotelsById>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[/XML]

Esto lo tengo que enviar a
http://lodgin.com/HotelFlow.svc?WSDL

hacia dónde estoy haciendo la conexión del cliente soap:
Código PHP:
$soapClient = new SoapClient('http://lodgin.com/HotelFlow.svc?WSDL');
       echo 
'<B>RESPUESTA DE LA CONEXIÓN</B><br>' ;
    
print_r($soapClient);

// para obtener las funciones disponibles en el servicio web
    
$functions $soapClient->__getFunctions();
    
print_r($functions); 
Hasta este punto todo funciona bien, la llamada me regresa las funciones/métodos disponibles
tengo una variable $xml dónde estoy cargando la cadena xml por medio de "simplexml_load_string()"
y luego ejecuto
Código PHP:
$SearchHotelsByIDResponse $soapClient->SearchHotelsByID($xml); 
donde "SearchHotelsByID" es uno de los métodos públicos

y aparece entonces el siguiente error:
Código HTML:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR:  Encoding: object has no 'CheckIn' property in  /var/www/html/get_hotels_by_ID.php...
Por favor podría alguien indicarme por dónde estoy mal, o que tengo que hacer para que esto funcione?

Gracias de antemano
__________________
Agradezco de antemano su valiosísima ayuda.
Marco Ríos
Ciudad de México

Etiquetas: consumir, php5, webservice
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 09:05.