Page 1 of 1

Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Thu Mar 23, 2017 4:02 pm
by softruz
Muy buenas foro, tengo un problema, siempre he tratado con este tipo de problemas y los he resuelto pero hoy no se lo que pasa y no puedo recoger los datos de una web que he realizado para adquirir unos datos, la cuestión es que quiero recoger lo que devuelve la web (que es mía):

http://www.simjcloud.com/testing/leafle ... =-4.639551

siempre me retorna la web pero sin los datos que devuelve, y no se como hacerlo para recoger los datos que devuelven, que en este caso son:

50902:2668.4

siempre que hago cualquiero código me devuelve la web vacia sin esos datos, yo creo que no me los devuelve porque la web siempre tarda un poco en adquirir esos datos.

¿Alguien me podría ayudar?

MUUUCHAS GRACIAS.

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Thu Mar 23, 2017 11:26 pm
by Willi Quintana
Hola,
Escribe el código que usas para recoger la información de esa web
Salu2

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Fri Mar 24, 2017 8:11 am
by softruz
Antetodo gracias por responder, he utilizado muchas funciones diferentes pero ninguna funciona,

aqui las que he probado pero nada

function test(othis)
local cUrl:="",oHttp:="",oIE:=nil,cbody:="",i:=0
cUrl:="https://maps.googleapis.com/maps/api/ge ... ress=calle juan de cervantes 38"
//cUrl:="http://server/leaflet/html/index.html?l ... =37.587115"
cUrl:="http://www.simjcloud.com/testing/leafle ... =-4.639551"
oIE := CREATEOBJECT( "InternetExplorer.Application" )
WITH OBJECT oIE
:Visible := .f.
:ToolBar := .f.
:StatusBar := .f.
:MenuBar := .f.
:FullScreen := .f.
:Left:=150
:Top:=150
:Invoke( "Navigate", cURL )
END WITH

Do While oIE:Busy
SysWait(1)
SysRefresh() // To Refresh
Loop
Enddo
for i:=1 to 999
othis:insertlog(allstr(i))
SysRefresh()
next

try
cBody := oIE:Document:body:innerText
catch
cBody := ""
end catch

msginfo(cbody)

return

function test1()
local oHttp:=nil,cUrl:="http://www.simjcloud.com/testing/leafle ... =-4.639551"
oHttp:=CreateObject("winhttp.winhttprequest.5.1")
oHttp:SetTimeouts(30000,30000,30000,30000)
oHttp:Open("GET",cUrl,.F.)
//oHttp:SetRequestHeader("Authorization","Basic dXNlcjpwYXNzd29yZA==") // BASE64 de "user:password"
//oHttp:SetRequestHeader("Credentials","user:password")
oHttp:Send('{ "Username": "user@company.com", "Password": "secret"}')
oHttp:waitForResponse()
msginfo(oHttp:ResponseText)
return
function test2(othis)
Local oHttp,i:=0

Try
oHttp := CreateObject( 'MSXML2.XMLHTTP' )
Catch
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'GET', "http://www.simjcloud.com/testing/leafle ... =-4.639551", .F. )

//oHttp:SetRequestHeader( "Content-Type","application/json")

oHttp:Send( '{ "latfrom": "37.899926", "lngfrom": "-4.731114","latto": "37.899926", "lngto": "-4.731114"}' )
SysRefresh()
for i:=1 to 999
othis:insertlog(allstr(i))
SysRefresh()
next

MsgInfo(oHttp:ResponseBody)
return
// http://server/leaflet/html/index.html?l ... =-4.639551
function test3(othis)
local cURL:="http://www.simjcloud.com/testing/leafle ... index.html"
local oServer:=nil

oServer := CreateObject( "MSXML2.XMLHTTP")

oServer:Open( "POST", cURL, .F. )
oServer:SetRequestHeader( "Content-Type" , "application/json" )
oServer:SetRequestHeader( "latfrom","37.899926")
oServer:SetRequestHeader( "lngfrom","-4.731114")
oServer:SetRequestHeader( "latto","37.587115")
oServer:SetRequestHeader( "lngto","-4.639551")
// oServer:SetRequestHeader( "ClientAPI_ID" , ::cID )
// oServer:SetRequestHeader( "ClientAPI_Key", ::cKey )

//oServer:SetRequestBody( cBody )

oServer:Send( cURL )
MSGINFO(oServer:readyState)
DO WHILE oServer:readyState <> 2
SYSWAIT()
ENDDO
MSGINFO(oServer:readyState)

msginfo(oServer:responseText)

return

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Fri Mar 24, 2017 8:15 am
by Antonio Linares
No se si este código pueda servirte:

http://forums.fivetechsupport.com/viewt ... 58#p184458

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Fri Mar 24, 2017 9:29 am
by softruz
Gracias Antonio, lo prueba ahora mismo y te digo

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Fri Mar 24, 2017 9:56 am
by softruz
donde puedo encontrar la clase TIPClientHTTP? no la tengo, yo uso FWH0901

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Mon Mar 27, 2017 7:38 am
by softruz
¿Alquien me puede dar una solucion a este problema?

Gracias.

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Mon Mar 27, 2017 8:27 am
by Enrico Maria Giordano
You have to link tip.lib (xHarbour) or hbtip.lib (Harbour).

EMG

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Mon Mar 27, 2017 11:00 am
by softruz
Gracias, ya he podido compilar, pero me sigue sin funcionar no me devuelve nada de los datos, la cuestion sería un código que se esperar a la respuesta de la web y entonces recoger los datos.

¿Alguien tiene la solucion?

Mil Gracias

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Wed Mar 29, 2017 7:30 am
by softruz
Ya he encontrado la solucion.
function getresulthtml()
local oIE:=nil,cURL:="",j:=0
local cBody:="",cTextoTXT:="",cTextoHTML:="",aElement:={}
oIE := CREATEOBJECT( "InternetExplorer.Application" )
WITH OBJECT oIE
:Visible := .f.
:ToolBar := .f.
:StatusBar := .f.
:MenuBar := .f.
:FullScreen := .f.
:Left:=150
:Top:=150
END WITH
oIE:Navigate2("http://www.simjcloud.com/testing/leafle ... =-4.639551")
do While oIE:busy
SysRefresh()
enddo


cTextoHTML:=oIE:Document:body:innerHTML()
while upper(alltrim(cTextoHTML))==alltrim(upper(oIE:Document:body:innerHTML()))
SysRefresh()
end while
cTextoHTML:=oIE:Document:body:innerHTML()

msginfo(cTextoHTML)
return

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Wed Mar 29, 2017 8:35 am
by Antonio Linares
muy bien

gracias por compartirla

Re: Quien me ayuda...Adquirir datos de respuesta de una web

Posted: Sat Apr 01, 2017 8:39 pm
by ADutheil
What is the purpose of these lines?
softruz wrote: while upper(alltrim(cTextoHTML))==alltrim(upper(oIE:Document:body:innerHTML()))
SysRefresh()
end while
return
I'd add oIE:quit() after cTextoHTML:=oIE:Document:body:innerHTML() to free memory and avoid leaving hidden IE instances.