Foros del Web » Programando para Internet » PHP »

conectarse a xml externo - SOAPAction

Estas en el tema de conectarse a xml externo - SOAPAction en el foro de PHP en Foros del Web. necesito conectarme a un XML externo pero me piden envio de parametros por post y por SOAP o algo asi... ya probe de todo pero ...
  #1 (permalink)  
Antiguo 10/03/2009, 13:49
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta conectarse a xml externo - SOAPAction

necesito conectarme a un XML externo pero me piden envio de parametros por post y por SOAP o algo asi... ya probe de todo pero no puedo ver el archivo xml....

alguien que me pueda ayudar?


esto es lo que me dice que tengo que hacer:

--------------------------------------------

Retorna todoas las consultas superiores a id, en XML. Un xml vacio en caso de no encontrar registros que cumplan con los requisitos.

Parametros:
id:Codigo del ultimo articulo de inventario obtenido, 0 en caso de ser la primera.
user:El nombre de usuario.
pass:La clave de acceso.
cant:La cantidad de registros.

Test
The test form is only available for requests from the local machine.
SOAP 1.1
The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values.



POST /empresas/webservice/getdata.asmx HTTP/1.1
Host: www.webexterna.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://subdominio.webexterna.com/getDataLimitAlgoXML"

Código:
<?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>
    <getDataLimitCobrosXML xmlns="http://subdominio.webexterna.com/">
      <id>int</id>
      <modId>int</modId>
      <user>string</user>
      <pass>string</pass>
      <cant>int</cant>
    </getDataLimitCobrosXML>
  </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

Código:
<?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>
    <getDataLimitAlgoXMLResponse xmlns="http://subdominio.webexterna.com.py/">
      <getDataLimitAlgoXMLResult>xml</getDataLimitAlgoXMLResult>
    </getDataLimitAlgoXMLResponse>
  </soap:Body>
</soap:Envelope>
--------------------------------
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #2 (permalink)  
Antiguo 10/03/2009, 14:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: conectarse a xml externo - SOAPAction

Si te piden que uses SOAP, usalo: http://www.php.net/soap

Saludos
  #3 (permalink)  
Antiguo 10/03/2009, 14:13
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: conectarse a xml externo - SOAPAction

esa es justamente la parte que no entiendo....

si tubiera algun codigo de ejemplo sobre como hacer eso...


hasta ahora este es mi codigo:

Código PHP:
<?php 

$da 
fsockopen("www.webexterna.com"80$errno$errstr30);
if (!
$da) {
   echo 
"$errstr ($errno)<br />\n";
} else {
   
$url "/empresas/webservice/getdata.asmx";
   
$salida "POST $url HTTP/1.1\r\n";
   
$salida .= "Host: [url]www.webexterna.com\r\n[/url]";
   
$salida .= "Content-Length: 0\r\n";
   
$salida .= "Connection: Close\r\n\r\n";

   
fputs($da$salida);
   while (!
feof($da)) {
       echo 
fgets($da128);
   }
   
fclose($da);



echo 
$da;

?>
pero nose donde tengo que poner para enviar el usuario, clave, id, y cantidad que son los parametros que me pide que envie....

estoy re perdido...

quiero ver el XML y una ves que lo vea ya tengo el codigo para jugar con ese xml...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 10/03/2009, 14:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: conectarse a xml externo - SOAPAction

En lugar de usar fsockopen() debes de usar el servicio SOAP, si ves el Manual hay muchos ejemplos.

Saludos
  #5 (permalink)  
Antiguo 10/03/2009, 14:34
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta

hasta aqui llegue con el soap, pero no funciona.....
Código PHP:
<?php
require_once('nusoap.php'); 

// Definimos los parametros de entrada 
$parameters = array( 
    
"id" => "0",
    
"user" => "miuser",
    
"pass" => "mipass",
    
"cant" => "6",
    
"op" => "getDataLimitAlgoXML"
); 

// Se indica la URL del servicio SOAP mediante WSDL 
$soapclient = new soapclient('http://subdominio.webexterna.com/getDataLimitAlgoXML','wsdl'); 

// Se invoca al Servicio Web SOAP 
$result     $soapclient->call('doFlashBarChart',$parameters); 

// El resultado viene en formato binario base64 ... 
$binary base64_decode($result); 

// Grabamos el fichero flash en el filesystem 
$movieName "./NewChart.swf"
$fp fopen($movieName,"w"); 
fwrite($fp$binary12000); 
fclose$fp ); 
 
?>
lo que quiero es que genere un archivo xml en mi server con los datos que trajo del servidor externo...

pero en ves de eso me genera un archivo swf y cuando abro no hay nada adentro...

quiero que enves del swf sea un xml... con los datos...
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por GatorV; 10/03/2009 a las 14:47
  #6 (permalink)  
Antiguo 10/03/2009, 14:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: conectarse a xml externo - SOAPAction

Pues en lugar de escribir el swf, haz un var_dump de $result para que veas que datos obtiene.

Saludos
  #7 (permalink)  
Antiguo 11/03/2009, 06:12
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
le hice un:

echo var_dump($result);


y me sale en pantalla esto:

bool(false)


------------------------------


ademas esta parte nose donde tengo que poner para enviarla:

POST /empresas/webservice/getdata.asmx HTTP/1.1
Host: www.webexterna.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://subdominio.webexterna.com/getDataLimitAlgoXML"

para mi que el error esta en esta linea:

$soapclient->call('doFlashBarChart',$parameters);

pero nose que tengo que poner en ves de 'doFlashBarChart'
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)

Última edición por GatorV; 11/03/2009 a las 08:41
  #8 (permalink)  
Antiguo 11/03/2009, 08:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: conectarse a xml externo - SOAPAction

Pues es el método al que quieres llamar de tu service, también pon la dirección correcta a tu archivo wsdl.

Saludos
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 16:17.