Saludos ;
Intentando ahora capturar el json de un api/ws y procesarlo en un login
En el ejemplo del curso de go.extend tenemos un webservice
que en el ejemplo del código fwh esta claro como manejarse en un .exe
Ahora yo agarro y cambio en el login.view
<form action="{{ Route( 'auth' ) }}" method="post" >
por
<form action="{{ Route( 'wsauth' ) }}" method="post" >
y el como es lógico me responde con el json en el navegador correctamente.
ahora la pregunta es , como hacer para capturar,tomar ese json y procesarlo,
no mostrarlo.
ejemplo poder pasarlo a un hash ejemplo
algo como hResponse :=Route( 'wsauth' )
la idea es agarrar la repuesta del json
y mandar a welcome si succes true.
y a login con su respectivo mensaje tal y como lo hace auth.
Gracias.
Siguiendo con login con ws
- ricardo arraes
- Mensajes: 87
- Registered for: 4 years 1 month
¡Hola amigo!
Hay varias formas de hacer esto como quieras, puedo mostrarte dos que funcionan por experiencia ...
1- en lugar de usar un formulario, puede usar javascript para enviar una solicitud a través de jquery o ajax a la ruta y proceso de su servicio web dentro de javascript
EJEMPLO HTML (.VIEW)
EJEMPLO JS:
2- puede dirigir la solicitud a una ruta de su propia aplicación y usar libcurl para reenviar la solicitud al webservice. su objeto curl recibirá la respuesta de la solicitud de webservice y aún puede procesar dentro del método de ruta de su aplicación
HTML Form -> Application route -> webservice -> Application route
*el código no está completo, acabo de hacer un ejemplo simple para que entiendas la lógica de la situación, de lo contrario la publicación sería demasiado larga
Hay varias formas de hacer esto como quieras, puedo mostrarte dos que funcionan por experiencia ...
1- en lugar de usar un formulario, puede usar javascript para enviar una solicitud a través de jquery o ajax a la ruta y proceso de su servicio web dentro de javascript
EJEMPLO HTML (.VIEW)
Código: Seleccionar todo
<button type="button" class="btn btn-primary btn-cjemplo" id="btneje" style="background-color: firebrick;">
Código: Seleccionar todo
$(".btn-ejemplo").on('click', function(e){
var objpost={var1:"A",var2:"B",var3:"C"}
$.ajax({
type: "POST",
url: "http://localhost/ws/route",
headers:{
Authorization: Cookies.get("cookie")
},
data: objpost
}).done(function(data,status) {
////////ejecuta código si la solicitud es exitosa
}
}).fail(function(xhr, status, error) {
////////ejecuta código si la solicitud falla
});
});
2- puede dirigir la solicitud a una ruta de su propia aplicación y usar libcurl para reenviar la solicitud al webservice. su objeto curl recibirá la respuesta de la solicitud de webservice y aún puede procesar dentro del método de ruta de su aplicación
HTML Form -> Application route -> webservice -> Application route
Código: Seleccionar todo
METHOD Auth( oController ) CLASS Access
LOCAL hCurl,uValue
LOCAL hResponseCrypt:={=>}
LOCAL hData:={=>}
LOCAL cUrl := "http://localhos/ws/route"
hData:=oController:oRequest:PostAll()
curl_global_init()
if ! empty( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, curl_easy_escape(hCurl,hb_jsonEncode(hData)))
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
IF (nret:=curl_easy_perform( hCurl )) == 0
uValue := curl_easy_dl_buff_get( hCurl )
ENDIF
ENDIF
curl_global_cleanup()
result:=uValue
hrespose:=hb_jsonDecode(uValue)
RETURN NIL
*el código no está completo, acabo de hacer un ejemplo simple para que entiendas la lógica de la situación, de lo contrario la publicación sería demasiado larga
The work always comes before the belief
-
- Mensajes: 24
- Registered for: 4 years 1 month
Gracias Ricardo ;
Use para la prueba tu opción numero 2. ya que aun no manejo jquery ni ajax .
estamos esperando el curso de charly de jquery y ajax aplicados a harbourianos
pero hice un pequeño ejemplo de como me lo planteastes y con curl obtengo el resultado en texto porque era una prueba.
me quedo mas o menos así y me funcionó
Gracias Ricardo.
Use para la prueba tu opción numero 2. ya que aun no manejo jquery ni ajax .
estamos esperando el curso de charly de jquery y ajax aplicados a harbourianos
pero hice un pequeño ejemplo de como me lo planteastes y con curl obtengo el resultado en texto porque era una prueba.
me quedo mas o menos así y me funcionó
Código: Seleccionar todo
METHOD Apilogin( oController ) CLASS Access
local hCurl, cBuffer := ""
local aData := {}
LOCAL hData:={=>}
LOCAL hResponse:={=>}
local cUrl:= "http://localhost/sonetos2/api/loginapi.prg"
//probando una peticion get sencilla
curl_global_init()
//cUrl := Route("wsauth")
// hData:=oController:oRequest:PostAll()
if ! empty( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
// curl_easy_setopt( hCurl, HB_CURLOPT_POSTFIELDS, curl_easy_escape(hCurl,hb_jsonEncode(hData)))
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
if curl_easy_perform(hCurl) == 0
cBuffer := curl_easy_dl_buff_get( hCurl )
endif
endif
curl_global_cleanup()
return cBuffer
- ricardo arraes
- Mensajes: 87
- Registered for: 4 years 1 month
¡de nada amigo!
He estado estudiando un poco de tweb últimamente y certifico que internamente usa jquery! Creo que si lo miras o el código fuente, ¡encontraré formas de usar jquery con modhabour!
He estado estudiando un poco de tweb últimamente y certifico que internamente usa jquery! Creo que si lo miras o el código fuente, ¡encontraré formas de usar jquery con modhabour!
The work always comes before the belief
-
- Mensajes: 24
- Registered for: 4 years 1 month
Gracias amigo ricardo;
Estudiaré mas tweb.
Gracias.
Estudiaré mas tweb.
Gracias.