Foros del Web » Programando para Internet » PHP »

Xml-RPC en PHP

Estas en el tema de Xml-RPC en PHP en el foro de PHP en Foros del Web. Hola!. Estoy intentando hacer funcionar un cliente y servidor XML-RPC en PHP. He buscado en bibliografía y en internet ejemplos, pero no ha funcionado ninguna ...
  #1 (permalink)  
Antiguo 23/11/2008, 17:46
 
Fecha de Ingreso: noviembre-2008
Mensajes: 1
Antigüedad: 15 años, 4 meses
Puntos: 0
Xml-RPC en PHP

Hola!.
Estoy intentando hacer funcionar un cliente y servidor XML-RPC en PHP.
He buscado en bibliografía y en internet ejemplos, pero no ha funcionado ninguna de las implementaciones.

En un ejemplo con el cuál estoy ocupado, al ir comentando líneas y hacer pruebas.. creo que donde se queda la ejecución es en el lado cliente en "$r=$c->send($f);". Como si no lograra establecer comunicación con el servidor.
No sé si se tratará de algo referido con la configuración de PHP, o con librerías xml, ....?? ??

Pego el código.. de ambos "cliente y servidor".. por si alguien puede aclararme.

Desde ya.. muchas gracias.


CLIENTE ------------------------ dv_clinte.php


<form name="form1" method="post" action="dv_cliente.php">
<input type="text" name="txtIsbn">
<input type="submit" name="Submit" value="Buscar">
</form>

<?php

include("xmlrpc-2.2.1/lib/xmlrpc.inc");

$isbn = $_POST['txtIsbn'];

echo $isbn;


if (isset($isbn)){

$f=new xmlrpcmsg('libros.buscaIsbn',array(new xmlrpcval($isbn, "int")));

print "<pre>".htmlentities($f->serialize())."</pre>\n";

$c=new xmlrpc_client("http://localhost/xml-rpc/dv_servidor.php");

//$c->setDebug(0);

$r=$c->send($f);

if(!$r){
die("Falló SEND");

echo ("fallo");

}

$v=$r->value();

if(!$r->faultCode()){
print "Título del libro ".$isbn." es ".$v->scalarval()."<BR>";
}else{
print "Falla: ";
print "Número de error: " .$r->faultCode()." Descripción del error '".$r->faultString()."'<BR>";

}


}

?>


SERVIDOR ------------------------ dv_servidor.php

<?php

//Ejemplo de un servidor XML-RPC en PHP
//Recibe un ISBN y regresa el Título //del libro.

include("xmlrpc-2.2.1/lib/xmlrpc.inc");
include("xmlrpc-2.2.1/lib/xmlrpcs.inc");


function BuscaIsbn($NoIsbn) {

global $NoError;
$err="";

// Obtenemos el parametro

$ParIsbn=$NoIsbn->getParam(0);


// Vemos si es del tipo correcto
if(isset($ParIsbn) && ($ParIsbn->scalartyp()=="int")){
// Obtenemos el valor numerico
$isbn=$ParIsbn->scalarval();
// Buscamos el libro
switch($isbn){
case 1: $titulo="PHP";
break;
case 2: $titulo="XML_RPC";
break;
case 3: $titulo="Sitios web";
break;
case 4: $titulo="Linux";
break;
default:$NoError=1;
$err="No hay libro ". "con el ISBN '". $isbn . "'";
}
}else {
// No es entero
$err="Se requiere un número";}

// Creamos la respuesta
if ($err){
// Si hay error
return new xmlrpcresp(0, $NoError, $err);
}else{
// Si no hay error
return new xmlrpcresp(new xmlrpcval($titulo));
}
}



//Creamos el servidor

$s=new xmlrpc_server(array("libros.buscaIsbn" =>array("function" => "BuscaIsbn")));

?>
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 00:43.