Foros del Web » Programando para Internet » PHP »

Webservice

Estas en el tema de Webservice en el foro de PHP en Foros del Web. Buen dia a todos, quisiera una ayuda para consumir un webservice desde php y el parámetro para enviar es una cadena de texto XML, el ...
  #1 (permalink)  
Antiguo 27/03/2013, 08:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Webservice

Buen dia a todos, quisiera una ayuda para consumir un webservice desde php y el parámetro para enviar es una cadena de texto XML, el código del cliente es el siguiente:

<?
require_once("lib/nusoap.php");

$wsdl="http://rndc.mintransporte.gov.co:8080/ws/svr008w.dll";

$soapclient = new nusoap_client($wsdl, 'wsdl');

$Request = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
<root>
<acceso>
<username>CRMSAS@9996</username>
<password>RNDC9996</password>
</acceso>
<solicitud>
<tipo>1</tipo>
<procesoid>11</procesoid>
</solicitud>
<variables>
<NUMNITEMPRESATRANSPORTE>02</NUMNITEMPRESATRANSPORTE>
<CODTIPOIDTERCERO>C</CODTIPOIDTERCERO>
<NUMIDTERCERO>51760125</NUMIDTERCERO>
<NOMIDTERCERO>LINDA</NOMIDTERCERO>
<PRIMERAPELLIDOIDTERCERO>BARRETO</PRIMERAPELLIDOIDTERCERO>
<SEGUNDOAPELLIDOIDTERCERO>AREVALO</SEGUNDOAPELLIDOIDTERCERO>
<NUMTELEFONOCONTACTO>6753733</NUMTELEFONOCONTACTO>
<NOMENCLATURADIRECCION>CALLE 156 # 9-50</NOMENCLATURADIRECCION>
<CODMUNICIPIORNDC>11001000</CODMUNICIPIORNDC>
<CODSEDETERCERO>2</CODSEDETERCERO>
<NOMSEDETERCERO>BOGOTA</NOMSEDETERCERO>
<NUMLICENCIACONDUCCION>110013973659</NUMLICENCIACONDUCCION>
<CODCATEGORIALICENCIACONDUCCION>6</CODCATEGORIALICENCIACONDUCCION>
<FECHAVENCIMIENTOLICENCIA>12/31/2013</FECHAVENCIMIENTOLICENCIA>
</variables>
</root>";

$result = $soapclient->call('AtenderMensajeRNDC', $Request);

$err = $soapclient->getError();

if ($err) {
echo $err;
print_r($soapclient->response);
} else {
print_r($result);
}
?>

al tratar de consumir retorna el error:

wsdl error: XML error parsing WSDL from http://rndc.mintransporte.gov.co:8080/ws/svr008w.dll on line 22: mismatched tag

Gracias si alguno de uds me pudiesen colaborar, ya que he intentado mucho y no doy con la tarea.
  #2 (permalink)  
Antiguo 27/03/2013, 10:58
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Webservice

Para consumir los xml te toca usa un curl. No soy experto en el tema pero te dejo un enlace para que comiences a consultar.

http://www.xml.com/pub/a/ws/2004/03/...ws.html?page=2

La opción 2 seria leer el xml previamente y convertirlo en un arreglo para mandarlo como arreglo y no como xml.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 27/03/2013 a las 11:05
  #3 (permalink)  
Antiguo 27/03/2013, 12:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Webservice

Muchas gracias por tu respuesta... voy a ensayar pa ver como me va y te comento...
  #4 (permalink)  
Antiguo 27/03/2013, 12:28
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Webservice

Como yo tambien tenia la duda de como funcionaba eso del CURL hice este pequeño script para ver como funciona la magia

Lo probe en mi servidor local y funciono de maravilla. Parece mas sencillo de lo que creia. ya seria cosa que lo probaras con tu propio xml

Código PHP:
<?php

$ch 
curl_init("http://dir.yahoo.com/rss/dir/getrss.php?ent_act");
$fp fopen("example_homepage.html""w");

curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);

curl_exec($ch);
curl_close($ch);
fclose($fp);

$xml simplexml_load_file('example_homepage.html');
print 
"<ul>\n";
foreach (
$xml->channel->item as $item){
  print 
"<li>$item->title</li>\n";
}
print 
"</ul>";

?>
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: variables, 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




La zona horaria es GMT -6. Ahora son las 16:47.