FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Petici贸n POST webview
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Petici贸n POST webview
Posted: Sun Aug 13, 2023 10:47 AM

Hola buenos d铆as de nuevo

Podemos hacer peticiones de tipo POST desde webview?

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Petici贸n POST webview
Posted: Sun Aug 13, 2023 01:02 PM

Estimado Arevalo,

El ejemplo webviewlogin.prg realiza una petici贸n tipo POST al identificar al usuario, te refieres a eso ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 12:42 AM

Antonio buenas noches, gracias por responder

No, me refer铆a a eso, lo que pasa es que necesito pasar a una direcci贸n web, un json demasiado grande y por GET el servidor me dice que no esta permitido por que la url es demasiado larga, entonces pens茅 que env茅s de enviarlo por GET, pueda enviar mencionado archivo al servidor mediante una petici贸n POST.

Espero hacerme entender,

de antemano gracias

Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 05:18 AM

Estimado Leandro,

Has considerado usar Curl ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 04:03 PM
Has considerado usar Curl ?
Si en alg煤n momento lo intentamos, pero desafortunadamente no funciona con xharbour.

Antonio, lo que pasa es que necesito enviarle cierta informaci贸n al servidor, para que haga un proceso y me devuelva otra informaci贸n y mostrarla despu茅s de procesada en el webview.
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 04:24 PM

Leandro:

Puedes tambien enviar mediante el objet Createobject("MSXML2.ServerXMLHTTP") y luego leer por get la informacion deseada, pero ahi tienes que tener el control del servidor web y de tu aplicacion, pero creo por lo que lei antes que ese es tu caso

Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 06:37 PM
Cesar gracias por responder

Pues es que por GET lo estamos haciendo de momento, pero como mencione anteriormente, el problema es que el servidor (si tenemos el control) nos dice que la url es demasiado larga.
Code (fw): Select all Collapse
cEp := hb_jsonEncode( RsToHash( oRsEp ) )
cEp := hb_base64encode(cEp,len(cEp))聽 聽 

oWebVwLg := TWebView():New(, oWid:hWnd )
oWebVwLg:Navigate( "https://nuestraurl/index?aep="+cEp ) //ESTA CADENA PUEDE SER DEMASIADO LARGA, "CREO" QUE SI LA ENVIAMOS POR POST NO VAMOS A TENER PROBLEMAS CON EL TAMA脩O
oWebVwLg:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )
oWebVwLg:Bind( "SendToFWH" )
oWebVwLg:bOnBind = { | cJson, cCalls | EVAL(cbLog, cJson ) }
Saludos
LEANDRO AREVALO
Bogot谩 (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Petici贸n POST webview
Posted: Mon Aug 14, 2023 08:40 PM
Leandro:
Yo digo algo asi
Code (fw): Select all Collapse
STATIC oOle
FUNCTION Main()
LOCAL aRecord, cJson
oOle := Createobject("MSXML2.ServerXMLHTTP")
aRecord 聽:= hash()
aRecord["ID"] = 1
aRecord["DATO2"] = "MIDATO2"
aRecord["DATO3"] = "MIDATO3"
cJson := hb_jsonEncode(aRecord,.f.)
SendPostToUrl( "https://nuestraurl/miapi", cJson, "application/json")
oWebVwLg := TWebView():New(, oWid:hWnd )
oWebVwLg:Navigate( "https://nuestraurl/vista?ID="+aRecord["ID"] )
RETURN nil

STATIC Function SendPostToUrl( cUrl, cParams,cContentType,cAuthorization )
聽 聽 Local cRet:="",uRet
聽 聽 default cContentType:="application/json"
聽 聽 default cAuthorization:=""
聽 聽 
聽 聽 oOle:Open( 'POST', cUrl, .f. )
聽 聽
聽 聽 oOle:SetRequestHeader( "Content-Type",cContentType)
聽 聽 if !empty(cAuthorization)
聽 聽 聽 聽 oOle:SetRequestHeader( "Authorization",cAuthorization)
聽 聽 end if 聽 聽
聽 聽 oOle:Send( cParams )
聽 聽 //SysRefresh()
聽 聽
聽 聽 cRet:=""
聽 聽 IF !oOle:ResponseBody = NIL 
聽 聽 聽 聽hb_jsonDecode(oOle:ResponseBody,@cRet) 聽 聽 聽 聽
聽 聽 聽 聽ELSE
聽 聽 聽 聽cRet := oOle:ResponseText
聽 聽 ENDIF
Return cRet
Entonces, en tu servidor espera en la ruta miapi un formulario tipo post que hace un proceso con los datos que le pasas en aRecord
Y luego en tu servidor, en la ruta vista, busca esos datos que ya se guardaron en el servidor y los procesa para mostrarlos
No se si fui claro

Continue the discussion