FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Quien me ayuda...Adquirir datos de respuesta de una web
Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Thu Mar 23, 2017 04:02 PM

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.

Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM

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

Posted: Thu Mar 23, 2017 11:26 PM

Hola,
Escribe el c贸digo que usas para recoger la informaci贸n de esa web
Salu2

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Fri Mar 24, 2017 08:11 AM

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/geocode/xml?address=calle juan de cervantes 38"
//cUrl:="http://server/leaflet/html/index.html?latfrom=37.899926&lngfrom=-4.731114&latto=37.587115"
cUrl:="http://www.simjcloud.com/testing/leaflet/html/index.html?latfrom=37.899926&lngfrom=-4.731114&latto=37.587115&lngto=-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/leaflet/html/index.html?latfrom=37.899926&lngfrom=-4.731114&latto=37.587115&lngto=-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/leaflet/html/index.html?latfrom=37.899926&lngfrom=-4.731114&latto=37.587115&lngto=-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/leaflet/html/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

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

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

Posted: Fri Mar 24, 2017 08:15 AM

No se si este c贸digo pueda servirte:

viewtopic.php?p=184458#p184458

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Fri Mar 24, 2017 09:29 AM

Gracias Antonio, lo prueba ahora mismo y te digo

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Fri Mar 24, 2017 09:56 AM

donde puedo encontrar la clase TIPClientHTTP? no la tengo, yo uso FWH0901

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Mon Mar 27, 2017 07:38 AM

驴Alquien me puede dar una solucion a este problema?

Gracias.

Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM

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

Posted: Mon Mar 27, 2017 08:27 AM

You have to link tip.lib (xHarbour) or hbtip.lib (Harbour).

EMG

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Mon Mar 27, 2017 11:00 AM

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

Posts: 485
Joined: Fri Feb 09, 2007 10:34 AM

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

Posted: Wed Mar 29, 2017 07:30 AM

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/leaflet/html/index.html?latfrom=37.899926&lngfrom=-4.731114&latto=37.587115&lngto=-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

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

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

Posted: Wed Mar 29, 2017 08:35 AM

muy bien

gracias por compartirla

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 368
Joined: Sun May 31, 2009 06:25 PM

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

Posted: Sat Apr 01, 2017 08:39 PM
What is the purpose of these lines?
softruz wrote: while upper(alltrim(cTextoHTML))==alltrim(upper(oIE:innerHTML()))
SysRefresh()
end while
return


I'd add oIE:quit() after cTextoHTML:=oIE:innerHTML() to free memory and avoid leaving hidden IE instances.
Regards,



Andr茅 Dutheil

FWH 13.04 + HB 3.2 + MSVS 10

Continue the discussion