Petición POST webview

Post Reply
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Petición POST webview

Post by leandro »

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 24.09 ] [ xHarbour 64 bits) ]
User avatar
Antonio Linares
Site Admin
Posts: 42513
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 73 times
Contact:

Re: Petición POST webview

Post by Antonio Linares »

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
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Petición POST webview

Post by leandro »

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 24.09 ] [ xHarbour 64 bits) ]
User avatar
Antonio Linares
Site Admin
Posts: 42513
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 31 times
Been thanked: 73 times
Contact:

Re: Petición POST webview

Post by Antonio Linares »

Estimado Leandro,

Has considerado usar Curl ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Petición POST webview

Post by leandro »

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 24.09 ] [ xHarbour 64 bits) ]
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Petición POST webview

Post by cmsoft »

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
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Petición POST webview

Post by leandro »

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: Select all | Expand

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 24.09 ] [ xHarbour 64 bits) ]
User avatar
cmsoft
Posts: 1297
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina
Been thanked: 2 times

Re: Petición POST webview

Post by cmsoft »

Leandro:
Yo digo algo asi

Code: Select all | Expand

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
Post Reply