Cómo interceptar datos HTTP POST desde un formulario web

Tengo una página web (que se muestra en un navegador, no un WebView ), y me gustaría pasar algunos datos (utilizando http POST, por ejemplo) a una aplicación regular de Android.

Solo necesito que la aplicación sea lanzada y alimentada con datos. Sé que la aplicación se puede iniciar registrando un filtro de intenciones, pero estoy perdido en la parte que pasa los datos.

No es necesario que la URL sea real, una URL falsa está bien.

Esto se puede hacer en BlackBerry usando filtros HTTP. ¿Hay una manera de hacer lo mismo en Android?

Gracias por adelantado.

3 Solutions collect form web for “Cómo interceptar datos HTTP POST desde un formulario web”

En su página web poner enlaces como:

 <a href="my.special.scheme://xyz.com/data1/data2"> 

En onCreate() su actividad, puede acceder a los datos a través del objeto de intención.

 Uri data = getIntent().getData(); String scheme = data.getScheme(); // "http" String host = data.getHost(); // "xyz.com" List<String> params = data.getPathSegments(); String first = params.get(0); // "data1" String second = params.get(1); // "data2" 

El enfoque en el que investigaría es implementar un servicio de servidor HTTP muy simple como parte de su aplicación. La codificación de un servidor web pequeño para su propósito exacto sería extremadamente simple: Escuche en el puerto TCP 80, acepte la conexión entrante, luego siga leyendo desde el socket hasta que se vea \r\n\r\n omitir el encabezado y luego leer el POST datos. Su página web presumiblemente acceder a ella a través de 'localhost'. Si hay algún obstáculo importante con este método no sé, pero al hacer una búsqueda rápida he visto que ya hay pequeños servidores web Android disponibles, por lo que técnicamente parece posible.

Aquí están mis dos centavos:

Aunque no es realmente interceptar, pero este enfoque hace el trabajo utilizando el mecanismo de filtro de intención convencional.

Ejemplo:

  1. El navegador abre un enlace a myownscheme: //myfakeurl.fake/http%3A%2F%2Factualurl.com
  2. La aplicación de Android coincide con el filtro de intenciones y se inicia. Analiza el parámetro en la URL y lo decodifica obteniendo "http://actualurl.com&quot;
  3. La aplicación android establece una conexión con la url transmitida y recupera los datos.

      String encodedURL = getIntent().getData().getPathSegments().get(0); //Returns http%3A%2F%2Factualurl.com String targetURL = Html.fromHtml(encodedURL); //Returns http://actualurl.com //Now do the GET and fetch the data. 
  • Cómo abrir el navegador predeterminado
  • El navegador predeterminado de Android crea la barra de desplazamiento horizontal para diseño responsivo
  • Soporte de SVG en Android, estado actual
  • Cómo añadir JavaScript al navegador de Android
  • Cómo acceder al almacenamiento local del navegador android a través del código nativo
  • Abrir vínculos externos en el navegador con la vista web de Android
  • Android no puede implementar el comentario de facebook en una vista web debido al navegador predeterminado
  • Android AVD Emulador Herramientas de desarrollo para el navegador móvil?
  • Configuración de visor de Android "user-scalable = no" rompe el nivel de ancho / zoom de la ventana de visualización
  • Historial anterior de WebView sin redirecciones
  • Intentos de Android para abrir el navegador preferido del usuario
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.