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

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

Postby softruz » Thu Mar 23, 2017 4: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.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby Willi Quintana » Thu Mar 23, 2017 11:26 pm

Hola,
Escribe el código que usas para recoger la información de esa web
Salu2
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

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

Postby softruz » Fri Mar 24, 2017 8: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
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby Antonio Linares » Fri Mar 24, 2017 8:15 am

No se si este código pueda servirte:

viewtopic.php?p=184458#p184458
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41287
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby softruz » Fri Mar 24, 2017 9:29 am

Gracias Antonio, lo prueba ahora mismo y te digo
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby softruz » Fri Mar 24, 2017 9:56 am

donde puedo encontrar la clase TIPClientHTTP? no la tengo, yo uso FWH0901
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby softruz » Mon Mar 27, 2017 7:38 am

¿Alquien me puede dar una solucion a este problema?

Gracias.
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby Enrico Maria Giordano » Mon Mar 27, 2017 8:27 am

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

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8307
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

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

Postby softruz » 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
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby softruz » Wed Mar 29, 2017 7: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
softruz
 
Posts: 485
Joined: Fri Feb 09, 2007 10:34 am

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

Postby Antonio Linares » Wed Mar 29, 2017 8:35 am

muy bien

gracias por compartirla
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41287
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby ADutheil » Sat Apr 01, 2017 8:39 pm

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.
Regards,

André Dutheil
FWH 13.04 + HB 3.2 + MSVS 10
ADutheil
 
Posts: 368
Joined: Sun May 31, 2009 6:25 pm
Location: Salvador - Bahia - Brazil


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Silvio.Falconi and 17 guests