FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error usando HTTP
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Error usando HTTP
Posted: Mon Apr 01, 2013 07:11 PM

Hola a todos.
Estoy con este error hace rato y no logro resolverlo, tampoco encuentro mucha documentacion sobre HTTP.
Intento comunicarme con un web server al que debo enviarle un xml en base 64 y se supone que el me envia en respuesta otro xml, el problema es que cuando ejecuto el envio del xml me da este error y de ahi no salgo. Estoy basandome en un ejemplo puesto aqui por Rafa Carmona que es lo unico que pude encontrar en HTTP.
El contenido de la variable que muestra el error es el xml que envio en base 64.

Application

Path and name: C:\WPS Gestion Bin\TRABAJO WEB SERVER\WebClien.EXE (32 bits)
Size: 2,422,784 bytes
Compiler version: Harbour 3.2.0dev (Rev. 18449)
FiveWin Version: FWH 12.11
Windows version: 6.1, Build 7600

Time from start: 0 hours 0 mins 5 secs
Error occurred at: 04/01/13, 15:57:58
Error description: (DOS Error -2147352567) WINOLE/1007 Error en la descarga del recurso solicitado.
(0x800C0008): msxml3.dll
Args:
[ 1] = C PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMTUiPz4NCjxzb2FwOkVudmVsb3BlIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnNvYXA9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIj4NCiAgIDxzb2FwOkJvZHk+DQogICAgICA8T2J0ZW5lck1hZXN0cm8geG1sbnM9Imh0dHA6Ly90ZW1wdXJpLm9yZy8iPg0KICAgICAgICAgPE1hZXN0cm9SZXEgeG1sbnM9Imh0dHA6Ly9CVFM4MDcyX0ZSQU5RX0ZVTExfRVhQUkVTUy5TQ0hFTUFTLndzTWFlc3Ryb1JlcXVlc3QiPg0KICAgICAgICAgICAgPENvZGlnb0VzdGFjaW9uIHhtbG5zPSIiPjcwMTU8L0NvZGlnb0VzdGFjaW9uPg0KICAgICAgICAgICAgPENsYXZlQXV0ZW50aWNhY2lvbiB4bWxucz0iIj5XUjBESTI4NE1TOUc8L0NsYXZlQXV0ZW50aWNhY2lvbj4NCiAgICAgICAgICAgIDxUaXBvUHJvY2VzbyB4bWxucz0iIj5NPC9UaXBvUHJvY2Vzbz4NCiAgICAgICAgICAgIDxUaXBvUHJvY2Vzb1NvbGljaXRhbnRlIHhtbG5zPSIiPk9idGVuZXJNYWVzdHJvPC9UaXBvUHJvY2Vzb1NvbGljaXRhbnRlPg0KICAgICAgICAgICAgPFRyYXphIHhtbG5zPSIiPk5PIFVTQVIgMjcvMDMvMjAxMyAxOTowMTwvVHJhemE+DQogICAgICAgICA8L01hZXN0cm9SZXE+DQogICAgICA8L09idGVuZXJNYWVzdHJvPg0KICAgPC9zb2FwOkJvZHk+DQo8L3NvYXA6RW52ZWxvcGU+DQoNCg==

Esto hago en mi prg:

try
oHttp := CreateObject( "MSXML2.XMLHTTP" )
catch e
? "Error de creacion"
end

ContXML :=MEMOREAD("ObtenerMaestros.xml")
Codi64XML:=hb_base64encode(ContXML)

oHttp:Open( "POST", cLocation, .F. )
oHttp:SetRequestHeader( "SOAPAction","http://tempuri.org/BTS8072_FRANQ_FULL_EXPRESS/ObtenerMaestro" )
oHttp:SetRequestHeader( "Content-Type","text/xml" )

oHttp:Send( Codi64XML ) && ACA SE PRODUCE EL ERROR.

Desde ya muchas gracias.
Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error usando HTTP
Posted: Thu Apr 04, 2013 04:39 PM
Jorge,

Que valor tienes en la variable cLocation ?

Mira lo que se comenta aqu铆:
http://www.portalfox.com/index.php?name=News&file=article&sid=1074&mode=nested&order=0&thold=0

Excelente proyecto... pero tengo el mismo problema que tuvieron el a帽o pasado:
WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: Error en la descarga del recurso solicitado. HRESULT=0x1: Funci贸n incorrecta. - WSDLReader:Loading of the WSDL file failed HRESULT=0x80070057: El par谩metro no es correcto. - Client:One of the parameters supplied is invalid. HRESULT=0x80070057

Cual es la soluci贸n? hay una mejor manera de hacerlo con la versi贸n 9?

Saludos!

Re: Re: C贸mo crear un Web Service con VFP8 sin tener instalado el VFP


por dasarobe en 17 Mar, 2006 - 12:40
(Informaci贸n del usuario | Enviar un mensaje
Hola grupo

Yo despu茅s de mucho consultar me encontre con un art铆culo de Microsoft donde dice que hay un peque帽o bug, al asignar la direcci贸n del SOAPIS30.DLL en "C:\Archivos de Programa\Archivos Comunes\MSSoap\Binaries\Soapis30.dll" OJO no se permiten direcciones con espacios, por lo tanto se debe digitar con el nombre corto DOS "C:\Archiv~1\Archiv~1\MSSoap\Binaries\Soapis30.dll" o lo que le corresponda en su cumputador
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Error usando HTTP
Posted: Thu Apr 04, 2013 10:34 PM

Hola Antonio, te pido disculpas pero no puedo divulgar publicamente el contenido de esa variable, es la direccion de un web server de YPF, si la necesitas te la envio por mail.
Te agradezco la respuesta, voy a ver que puedo solucionar con esto.

Muchas gracias
Jorge Jaurena

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Error usando HTTP
Posted: Thu Apr 04, 2013 10:53 PM

Jorge,

Me la puedes enviar por email. De todas formas has comprobado que no tenga alg煤n espacio en el nombre ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: Error usando HTTP
Posted: Fri Apr 12, 2013 04:32 PM
YO LO HARIA ASI


try
oHttp := CreateObject( "MSXML2.SERVERXMLHTTP.5.0" )
catch e
? "Error de creacion"
end

ContXML :=MEMOREAD("ObtenerMaestros.xml")
Codi64XML:=hb_base64encode(ContXML)

doc=CreateObject("MSXML2.DOMDocument")
oHttp:Open( "POST", cLocation, .F. )
oHttp:SetRequestHeader( "SOAPAction","http://tempuri.org/BTS8072_FRANQ_FULL_EXPRESS/ObtenerMaestro" )
oHttp:SetRequestHeader( "Content-Type","text/xml" )

doc:loadXML(codi64xml)
oHttp:Send( doc:xml )
&& ACA SE PRODUCE EL ERROR.

Espero te sirva .. saludos
Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Error usando HTTP
Posted: Sat Apr 13, 2013 10:44 PM

Te agradezco mucho tu ayuda. Estoy probando, cuando mando el archivo usando tu tecnica del DOM algo cambia, el windows me pregunta si confio en los certificados y bla bla y continua el proceso pero no baja nada, se que el problema lo tengo en que no defino correctamente el objeto que deberia tener para que se aloje el xml recibido, estoy seguro que el tema va por el XMLHttpRequest que me parece que es un objeto pero no se bien como usarlo, si tenes alguna idea te lo voy a agradecer.

Saludos
Jorge G. Jaurena

Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: Error usando HTTP
Posted: Mon Apr 15, 2013 01:35 PM

doc = CreateObject( "MSXML2.DOMDocument" )
ohttp = CreateObject( "MSXML2.XMLHTTP" )
ohttp:Open( "POST" , ts_servidor , .F. )
ohttp:SetRequestHeader( "SOAPAction" , "visarDocumento" )
ohttp:SetRequestHeader( "Content-Type" , "text/xml;charset=utf-8" )
ohttp:SetRequestHeader( "Accept-Languaje","sp" )
doc:LoadXML( ctext )
TRY
ohttp:Send( doc:xml )
CATCH
msginfo("No Se Pudo Enviar Documento XML","Intente Nuevamente")
return .t.
END
response:=ohttp:responseText

asi lo utilizo, yo y el webservice, me responde

Fivewin-Xharbour 24.09, Iquique, Chile
Posts: 155
Joined: Fri Oct 21, 2005 06:35 PM
Re: Error usando HTTP
Posted: Mon Apr 15, 2013 09:59 PM

Probe enviar usando el TRY y no me da ningun error, aparentemente el archivo se envia pero luego de eso pregunto esto, antes del response:

IF oHttp:Status<>200
? str(oHttp:Status)
ENDIF

200 es OK, pero me da el codigo 400 que significa Bad Request asi que creo que no me esta bajando nada, disculpa, no se si tendras idea porque puede dar este codigo de error.
Gracias.

Jorge Jaurena

Posts: 336
Joined: Wed May 16, 2007 09:40 PM
Re: Error usando HTTP
Posted: Thu Apr 18, 2013 03:08 PM
4xx Errores del cliente La solicitud contiene sintaxis incorrecta o no puede procesarse.

La intenci贸n de la clase de c贸digos de respuesta 4xx es para casos en los cuales el cliente parece haber errado la petici贸n. Excepto cuando se responde a una petici贸n HEAD, el servidor debe incluir una entidad que contenga una explicaci贸n a la situaci贸n de error, y si es una condici贸n temporal o permanente. Estos c贸digos de estado son aplicables a cualquier m茅todo de solicitud (como GET o POST). Los agentes de usuario deben desplegar cualquier entidad al usuario. Estos son t铆picamente los c贸digos de respuesta de error m谩s com煤nmente encontrados.

400 Solicitud incorrecta
La solicitud contiene sintaxis err贸nea y no deber铆a repetirse.


Estas enviando un XML con una sintaxis erronea, creo que el xml tiene problemas
Fivewin-Xharbour 24.09, Iquique, Chile

Continue the discussion