Foros del Web » Programando para Internet » PHP »

Enviar y recibir XML a Web Service con httpRequest

Estas en el tema de Enviar y recibir XML a Web Service con httpRequest en el foro de PHP en Foros del Web. Hola a todos, espero me puedan ayudar un poco, estoy intentando enviar un xml para una reservacion a un Web Service, creo ya lo logre ...
  #1 (permalink)  
Antiguo 21/07/2014, 20:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Enviar y recibir XML a Web Service con httpRequest

Hola a todos, espero me puedan ayudar un poco, estoy intentando enviar un xml para una reservacion a un Web Service, creo ya lo logre hacer ya que me piden que sea con httpRequest y cuando le doy en procesar me aparece:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 171
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/8.0
X-Aspnet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 22 Jul 2014 02:33:21 GMT

101Cannot find table 0.System

Pero no se si esta bien, o que tengo que hacer para recibir el xml si es que lo hay.

Mi codigo es:

Código PHP:
$raw_xml_1 htmlentities(mi_xml);
$url 'http://laurldelws';
$headers = array('Content-length: '.strlen($raw_xml_1)); 
$options = array(headers => $headersprotocol => HTTP_VERSION_1_1);
//create the httprequest object               
$httpRequest_OBJ = new httpRequest($urlHTTP_METH_POST$options);
//add the content type
$httpRequest_OBJ->setContentType 'Content-Type: application/xml; charset=utf-8';
//add the raw post data
$httpRequest_OBJ->setRawPostData ($raw_xml_1);
//send the http request
$result $httpRequest_OBJ->send();
//print out the result
echo "<pre>"; print $result; echo "</pre>"
Ayuda por favor... gracias

Última edición por jee92; 21/07/2014 a las 20:45 Razón: Codigo mal copiado
  #2 (permalink)  
Antiguo 21/07/2014, 21:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Enviar y recibir XML a Web Service con httpRequest

Antes de enviar el XML muéstralo en el navegador y revisa si está armado correctamente, según las características del servicio.

Necesitas convertir los caracteres especiales en entidades HTML?

La función htmlentities() convertirá caracteres como < en &lt; y > en &gt; con lo que supongo que el XML resultante no será válido.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 21/07/2014, 21:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Enviar y recibir XML a Web Service con httpRequest

Hola Triby, gracias por la respuesta, si imprimo el xml con el htmlentities si me muestra todo el arbol del xml con las <xml/> pero si no le meto el htmlentities me imprime solo el contenido del xml pero sin la estructura, tu me recomiendas no usar htmlentities y en vez de eso ponerle el codigo ascii &lt; y &gt;???

A mi solo me dijieron, tienes que enviar la peticion en xml y con httpRequest, que me recomiendas??

Gracias
  #4 (permalink)  
Antiguo 21/07/2014, 21:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Enviar y recibir XML a Web Service con httpRequest

Si muestras el XML sin htmlentities en el navegador solo veras los contenidos, sin etiquetas, para ver bien lo que estás enviando, revisa el código fuente en el navegador "Botón derecho -> Ver código fuente" y ahí es donde debes ver si está bien o no.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 21/07/2014, 21:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Enviar y recibir XML a Web Service con httpRequest

Ok si veo en el codigo fuente me da:

<?xml version="1.0" encoding="utf-8"?><response><errorcode>101</errorcode><errordescription>Cannot find table 0.</errordescription><errordata>System</errordata></response>

Que ese es el error y lo que mando es:

Sin htmlen:

<?xml version="1.0" encoding="utf-8"?><Request Type="Reservation" Version="1.0"><affiliateid>xxx</affiliateid><language>esp</language><company></company><currency>PE</currency><uid>xxxxxxxxxx</uid><ip>xxxxxxxx</ip><firstname>Prueba</firstname><lastname>Prueba</lastname><emailaddress>[email protected]</emailaddress><clientcountry>MX</clientcountry><country>MX</country><address>xxxxx</address><city>xxxx</city><state>xxxx</state><zip>xxxx</zip><total>847.3249</total><legalperson><businessname/><number/><type/></legalperson><phones><phone><type>1</type><number>xxxxxxxx</number></phone><phone><type>2</type><number></number></phone></phones><hotels><hotel><hotelid>xxxx</hotelid><roomtype>STD</roomtype><mealplan>CP</mealplan><datearrival>20141101</datearrival><datedeparture>20141102</datedeparture><couponid></couponid><marketid>INTER</marketid><contractid>2</contractid><dutypercent></dutypercent><rooms><room><amount>847.3249</amount><status>AV</status><ratekey>xxxxxxxxxxx</ratekey><adults>2</adults><kids>0</kids><infants>0</infants></room></rooms></hotel></hotels><payments><cardpayment><type>86</type><bank>BANCOMER</bank><number>4111111111111111</number><securitycode>123</securitycode><expirationmonth>12</expirationmonth><expirationyear>2014</expirationyear><monthlyinterest>0</monthlyinterest><holdername>Prueba</holdername><address>xxxxxx7</address><city>xxxx</city><state>xxxxxx</state><country>MX</country><zip>xxxx</zip><amount>847.3249</amount></cardpayment></payments></Request>

Y con el html ent me lo pone asi:

&lt;?xml version=&quot;


Entonces sabes cual es el correcto??? De entrada el error que me da creo ya no es por mi envio o si?

Gracias

Etiquetas: html, httprequest, recibir, service, xml
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 08:20.