Intercambio de datos entre PC y dispositivo Android en la m

Intercambio de datos entre PC y dispositivo Android en la m

Postby Arturo Lopesoria » Tue Feb 20, 2024 10:27 pm

ASUNTO: Intercambio de datos entre PC y dispositivo Android en la misma red local vía WiFi.

Hola a todos.
Soy usuario de FWPPC pero ahora he venido dando pequeños brincos hacia a Android.

Utilizo el servidor uhttpd.exe
( v.0.4.4 FIXED_THREADS de (c)2009 de Francesco Saverio Giudice )
Me FUNCIONABA muy bien cuando lo usaba para generar el HTML al Cliente, sirviendome como un sencillo y fácil Front-End y Back-End.

AHORA EL RETO ES DIFERENTE. La NECESIDAD AHORA es:

1.- El Front-End debe estar separado del Back-End. No requiero que el modulo PRG-CGI del lado servidor genere nada del front-End (HTML), de eso se encargará el Cliente.

2.- No requiero SSL ni MultiThreads ya que es una web local TRIVIAL entre una PC y uno o dos Dispositivos Android.

3.- El Cliente y el servidor deberan poder comunicarse vía $Ajax, HttpRequest, Fetch-Api o tal vez WebSocket?

AUN SIGO INTENTANDO CON UHTTPD

A.- Para el lado SERVIDOR BACK-END (Módulo CGI) uso un prg compilado como cgi, por ahora muy simple y sencillo, cofigurado para recibir peticiones y responder a las solicitudes. Lee el Request y acorde a ello genera Las respuestas que son datos procedentes de tablas .dbf, que reciden en la PC y en ese punto el programa prg de manera hard-coded abre tablas, y genera respuestas ya sea en formato array, json o hash, lo que resulte más compatible con el escenario.

B.- Del lado CLIENTE FRONT-END Uso una APP html-javascript-jQuery encapsulada mediante CORDOVA para correr en un webview de ANDROID. Esto es, se encarga de generar todo el HTML para la interfaz de usuario.
Para ello me basé y adapté ideas de JMG. (Roberto)

SITUACION ACTUAL:

No he logrado la comunicación, mi primer aproach el más sencillo, hago una petición $Ajax del lado Cliente y el servidor la recibe, pero al generar la respuesta viola las normas CORS, generando el error:

Access to XMLHttpRequest at 'http://192.168.1.110/cgi-bin/menu_jmg.hrb?qry=ASKING_SIMPLE_TEXT'
from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Lo que significa que no encuentra los encabezados apropiados del lado SERVIDOR uhttpd/Modulo CGI

PROBLEMA:

Requiero poder cambiar los encabezados ya sea en el módulo CGI o tal vez en el uhttpd.
No encuentro cómo lograr hacer que uhttpd pueda responder de otra manera que no sea HTML y lograr meter el encabezado "Access-Control-Allow-Origin *"
Siempre responde con unos encabezados fijos por default.

Tampoco he logrado compilar el uhttpd que se incluye en:
harbour\core\extras\httpsrv y tal vez desde ahí utilizar las funciones de insertar encabezados que veo eln los fuentes. Pero aún ni siquiera sé si voy bien por ese camino.
Lograr que uhttpd responda de alguna manera compatible con la comunicación compatible tipo $Ajax, HttpRequest() o Fetch-API.

Tampoco me animo a usar Mod-Harbour para esto. Porqué?
- No he visto cómo hacer para utilizar .HRBs en lugar de .PRGs desde Mod-Harbour
- Me result DEMASIADO ROBUSTO para una necesidad tan simple.

Alguna idea o sugerencia para este pequeño escenario de:

Intercambio de datos entre PC y dispositivo Android en la misma red local vía WiFi. ?
Arturo LS
User avatar
Arturo Lopesoria
 
Posts: 94
Joined: Fri Aug 10, 2007 1:47 am
Location: Mexico DF

Re: Intercambio de datos entre PC y dispositivo Android en la m

Postby Carles » Wed Feb 21, 2024 6:22 am

Bon dia,

Si usas httpd creo recordar que habia la funcion UAddHeader(). Puedes probar antes de generar la salida -> UAddHeader( "Access-Control-Allow-Origin", "*" )

Si no usas ssl te pueden facilmente leer el contenido.

Tu escenario es el tipico de uso de webservices. Tampoco autenticas la comunicacion ?

Por muy sencillo que planteas lo que quieres, hay muchos puntos a tocar en este tipo de escenarios


Saludos.
C.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1135
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Intercambio de datos entre PC y dispositivo Android en la m

Postby Lautaro » Wed Feb 21, 2024 2:22 pm

Estimado,

¿ En el CGI como generas las respuestas ? , ¿ usas la clase TIPCGI ? , si es asi, usa el metodo : :header( "Access-Control-Allow-Origin: * " )

Saludos

Lautaro Moreira
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 33 guests