Foros del Web » Programando para Internet » PHP »

Acceso a WS que no es SOAP

Estas en el tema de Acceso a WS que no es SOAP en el foro de PHP en Foros del Web. Hola a todos: Necesito acceder a un WS que no es SOAP y que me devuelve como salida un XML. El WS en cuestion es ...
  #1 (permalink)  
Antiguo 04/01/2012, 21:49
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 1 mes
Puntos: 1
Acceso a WS que no es SOAP

Hola a todos:
Necesito acceder a un WS que no es SOAP y que me devuelve como salida un XML. El WS en cuestion es este: http://xisbn.worldcat.org/webservice...ormat=xml&fl=* [es una URL de prueba] se les ocurre algo para ello? Por mas que le doy vueltas en mi cabeza no se como acceder a ese WS desde mi aplicacion.
Un saludo y gracias por adelantado
  #2 (permalink)  
Antiguo 04/01/2012, 22:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acceso a WS que no es SOAP

Pues yo lo veo bien fácil, algo de cURL por aquí y SimpleXML por allá... bingo!

Sin embargo yo usaría JSON ¿ya te diste cuenta que puedes cambiar el formato de la respuesta?
http://xisbn.worldcat.org/webservice...rmat=json&fl=*
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/01/2012, 22:36
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Acceso a WS que no es SOAP

cURL no puedo usar porque esta en un servidor que no me es permitido asi que esa variante la pense pero la deseche. Ahora la de JSON como lo harias tu? Me dejas algun ejemplo?

Saludos y gracias por la respuesta
  #4 (permalink)  
Antiguo 04/01/2012, 23:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acceso a WS que no es SOAP

Usando json_decode() puedes convertir la respuesta en un objeto, igual que con xml, no hay diferencia.

Y bueno, si tu servidor no te permite cURL ¿entonces que si permite para leer contenido remoto?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 05/01/2012, 08:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Acceso a WS que no es SOAP

Perfecto, he logrado que mi proveedor me habilite cURL pero ahora tengo una duda, como convierto el resultado a cadena? Lo digo es porque este es el codigo que tengo en uso:
Código PHP:
$ch curl_init();
$url "http://xisbn.worldcat.org/webservices/xid/isbn/0596002815?method=getMetadata&format=json&fl=*";
curl_setopt($chCURLOPT_URL$url);
echo 
curl_exec($ch);
curl_close($ch); 
Pero curl_exec lo que me devuelve es TRUE o FALSE y lo que necesito es tomar el contenido devuelto para pasarlo como una cadena a la funcion json_decode. Alguna ayuda?

Saludos
  #6 (permalink)  
Antiguo 05/01/2012, 08:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acceso a WS que no es SOAP

Te invito a buscar en los aportes del foro sobre cuRL, sockets, etc.

O también en el manual de php, no hace daño.
http://php.net/curl
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 05/01/2012, 10:16
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 140
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Acceso a WS que no es SOAP

Ok, chevere ya revise todo eso y mucho antes de q me lo recomendaras pero el problema no creo que sea con cURL sino en como obtener ese JSON devuelto por el WS. He realizado dos pruebas, la primera es con el siguiente codigo:
Código PHP:
$ch curl_init();
$url "http://xisbn.worldcat.org/webservices/xid/isbn/0596002815?method=getMetadata&format=json&fl=*";
curl_setopt($chCURLOPT_URL$url);
$resultado curl_exec($ch);
curl_close($ch); 
Lo cual me imprime en el navegador:
Código:
{ "stat":"ok", "list":[{ "url":["http://www.worldcat.org/oclc/177669176?referer=xid"], "publisher":"O'Reilly", "form":["BA"], "lccn":["2004273129"], "lang":"eng", "city":"Sebastopol, CA", "author":"by Mark Lutz and David Ascher.", "ed":"2nd ed.", "year":"2003", "isbn":["0596002815"], "title":"Learning Python", "oclcnum":["177669176", "222927677", "249274099", "253402825", "301161087", "438280230", "442197411", "464709193", "492988633", "54619668", "55847258", "614957020", "644729085", "748093898"]}]}
Y la segunda con el siguiente codigo:
Código PHP:
$ch curl_init();
$url "http://xisbn.worldcat.org/webservices/xid/isbn/0596002815?method=getMetadata&format=json&fl=*";
curl_setopt($chCURLOPT_URL$url);
$resultado curl_exec($ch);
curl_close($ch);
$json json_decode($resultado);
echo 
$json->{stat}; 
Y sorpresa se me devuelve justo el mismo codigo o sea la salida es la misma y no logro entender el porque, ahi es donde estoy solicitando la ayuda en ver que es lo que estoy haciendo mal

Saludos nuevamente y gracias por la ayuda
  #8 (permalink)  
Antiguo 05/01/2012, 12:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Acceso a WS que no es SOAP

Lee lo siguiente:

Aportes, Sistemas en PHP -> [APORTE] file_get_contents(), cURL, HTTP_Request

Tienes que indicarle a cURL que te devuelva el resultado, no que lo imprima al navegador.

Saludos.

Etiquetas: soap
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 02:19.