Leer página web desde FWH

Post Reply
alvaro533
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Leer página web desde FWH

Post by alvaro533 »

Buenas tardes

Estoy intentado leer una página web desde mi programa. La página es

http://aviationweather.gov/adds/metars/index.php?submit=1&station_ids=LEAL&chk_metars=on&chk_tafs=on&hoursStr=3

El siguente código me funciona perfectamente con páginas que no son php.

Code: Select all | Expand

// -------------------------------------------------------------------------- //function leeADDS()local sitelocal cad:=""local outlocal oWebClientlocal oTimer,oDlglocal cPagenamesite := "aviationweather.gov"cPagename:= "/adds/metars/index.php?submit=1&station_ids=LEAL&chk_metars=on&chk_tafs=on&hoursStr=3"    oWebClient := TWebClient():New()    oWebClient:Connect( site )DEFINE TIMER otimer INTERVAL 1000 ACTION if(comprueba(cad) , oDlg:end() , nil) OF app():owndACTIVATE TIMER otimerDEFINE DIALOG oDlg FROM 3, 3 TO 28, 79 title "Espera "+cPageName//    oWebClient:bOnConnect = { || MsgInfo( "Connected!" ) }//    oWebClient:bOnRead    = { | cData | cad += cData     }    oWebClient:bOnRead    = { | cData |  cad += cData    }    oWebClient:oSocket:SendData( "GET " + cPageName + " HTTP/1.0" + CRLF +"Host: "+site+ CRLF +CRLF )activate dialog oDlg centeredout:= fcreate("meteo.txt",0)fwrite(out,cad+CRLF)fclose(out)RELEASE TIMER otimerreturn nil// ---------------------------------------------------------------------------- //static function comprueba(cad)local bien:= .t.if !cad="HTTP/1.1 200 OK"bien:= .f.endifif !("</html>"$cad)bien:= .f.endifreturn bien 


Pero como ésta es php me da un error. No he encontrado nada en el foro al respecto. ¿Alguien me puede echar una mano?

Muchas gracias y un saludo,

Alvaro
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Leer página web desde FWH

Post by Daniel Garcia-Gil »

Alvaro

aqui tienes un ejemplo funcional usando Harbour

descarga el ejemplo desde aqui: http://www.sitasoft.net/fivewin/samples/req.zip

Code: Select all | Expand

#include "fivewin.ch"#define SET_HOST "aviationweather.gov"#define SET_REQUEST "GET [URL] HTTP/1.1" + CRLF + ;                   "Host: [HOST]" + CRLF + ;                   'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7' + CRLF +;                   'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' + CRLF +;                   'Accept-Language: en-us,en;q=0.5' + CRLF +;                   'Accept-Encoding: deflate' + CRLF +;                   'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' + CRLF +;                   "Connection: Close" + CRLF + CRLF function main()? GetDatas()return nilFUNCTION GetDatas()   LOCAL cRequest   LOCAL cResponse   LOCAL cBuffer   LOCAL pSocket   LOCAL nBytes   LOCAL nPos, i   LOCAL cStr   LOCAL crlf := chr(13)+chr(10)   LOCAL nMaxBuff := 1024   LOCAL aResponse := {}   LOCAL cUrl                        HB_INetInit()   cUrl    := "/adds/metars/index.php?submit=1&station_ids=LEAL&chk_metars=on&chk_tafs=on&hoursStr=3"      pSocket := HB_INetConnect( SET_HOST, 80 )   IF HB_INetErrorCode( pSocket ) <> 0      RETURN NIL   ELSE      cRequest  := strTran( SET_REQUEST, "[URL]", cUrl )      cRequest  := strTran( cRequest, "[HOST]", SET_HOST )                         nBytes    := HB_INetSend( pSocket, cRequest )      cBuffer   := SPACE(nMaxBuff)      cResponse := ""      DO WHILE nBytes > 0         nBytes    := HB_INetRecv( pSocket, @cBuffer )         cResponse += LEFT( cBuffer, nBytes )         cBuffer   := SPACE(nMaxBuff)      ENDDO   ENDIF   HB_INetClose( pSocket )   HB_INetCleanUp()      RETURN cResponse 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
alvaro533
Posts: 206
Joined: Sat Apr 19, 2008 10:28 pm
Location: Madrid, España

Re: Leer página web desde FWH

Post by alvaro533 »

Funciona a la perfección. Muchas gracias Daniel.
Un saludo desde Madrid.

Alvaro
User avatar
Xevi
Posts: 174
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Leer página web desde FWH

Post by Xevi »

Os sigue funcionando???

Lo he probado y a mi no me funciona.
Si leo lo que me devuelve...

Code: Select all | Expand

HTTP/1.1 301 Moved PermanentlyServer: AkamaiGHostContent-Length: 0Location: https://aviationweather.gov/adds/metars/index.php?submit=1&station_ids=LEAL&chk_metars=on&chk_tafs=on&hoursStr=3Date: Wed, 09 Sep 2020 08:56:06 GMTConnection: close


Gracias
Un Saludo,
Xevi.

Aprendiz de la vida!!!
User avatar
karinha
Posts: 8067
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 10 times
Contact:

Re: Leer página web desde FWH

Post by karinha »

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Xevi
Posts: 174
Joined: Wed Nov 29, 2017 11:42 am
Location: Girona

Re: Leer página web desde FWH

Post by Xevi »

karinha

No entiendo tu respuesta... si voy a esa dirección SI que veo que está funcionando, pero lo que intento es "leer o capturar" los datos que retorna esa página "https://aviationweather.gov/adds/metars/index.php?submit=1&station_ids=LEAL&chk_metars=on&chk_tafs=on&hoursStr=3", tal cual se detalla en el sample.
Pero veo que ahora no está funcionando.
Un Saludo,
Xevi.

Aprendiz de la vida!!!
Post Reply