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.

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 encontrar el navegador predeterminado establecido en el dispositivo Android
  • Detectar navegación anónima / incógnita
  • Cómo abrir el navegador predeterminado
  • Cómo abrir la página html local en el navegador
  • ¿Cómo puedo supervisar y obtener tráfico http en una aplicación Android?
  • Abrir navegador con la última URL visitada
  • Inicie la aplicación youtube desde el navegador de Android
  • "SDK-buildable" Navegadores Web de código abierto para Android
  • Android vuelve del navegador a la aplicación
  • ¿Cómo puedo utilizar appium para automatizar el navegador en android?
  • Permitiendo arrastrar y soltar en un dispositivo móvil con pantalla táctil
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.