Asombroso. Probablemente ahorró un mes de trabajo. ¿Puedes usarlo en un producto comercial?
Ivan G.
Debería leer sobre la licencia BSD modificada. Si permite usar código en producto comercial o no.
Damluar
2
Parece que no puedo hacer que las imágenes se muestren en mi página html. ¿Qué directorio debe usarse en el html para que se muestren las imágenes? Gracias.
Shane Oliver
La ruta a las imágenes es relativa con respecto a la página html. que no es un problema del servidor http, es malo html ..
damluar
¿Puedo servir un archivo que se está agregando actualmente a homeDir. Por ejemplo, estoy copiando un archivo llamado f1 en homeDir (usando javacode). Ahora la copia del archivo está en progreso y si alguien envía una solicitud para el archivo f1 ¿Puede el servidor procesar la solicitud?
Ashwin N Bhanushali
23
NanoHttpd funciona a la perfección en Android: tenemos código en producción, en manos de los usuarios, que se basa en él.
La licencia permite absolutamente el uso comercial de NanoHttpd, sin implicaciones "virales".
¿Dónde puedo encontrar un tutorial / muestra de cómo usarlo? por ejemplo, para servir un archivo ubicado en el dispositivo, para que otros puedan descargarlo (o transmitir desde él)?
desarrollador de Android
9
Esto se puede hacer usando ServerSocket , al igual que en JavaSE. Esta clase está disponible en Android. android.permission.INTERNETes requerido.
La única parte más complicada es que necesita un hilo de espera separado en ServerSocket, que atienda los sub-sockets que provienen de su acceptmétodo. También debe detener y reanudar este hilo según sea necesario. El enfoque más simple parece matar el hilo de espera cerrando ServerSocket. Si solo necesita un servidor mientras su actividad está en la parte superior, iniciar y detener el hilo de ServerSocket se puede vincular de manera bastante elegante a los métodos del ciclo de vida de la actividad. Además, si el servidor tiene varios usuarios, puede ser bueno atender las solicitudes en los subprocesos bifurcados. Si solo hay un usuario, esto puede no ser necesario.
Si necesita decirle al usuario en qué IP está escuchando el servidor, use NetworkInterface .getNetworkInterfaces (), esta pregunta puede decirle trucos adicionales.
Finalmente, aquí existe posiblemente el servidor Android mínimo completo que es muy corto, simple y puede ser más fácil de entender que las aplicaciones de usuario final terminadas, recomendadas en otras respuestas.
Esto es gordo para los estándares de Android (100 kb). Bueno si desea un servidor serio en Java en lugar de un simple servicio de archivos o una interfaz remota de configuración / depuración / estado en su aplicación.
Respuestas:
Considere este: https://github.com/NanoHttpd/nanohttpd . Muy pequeño, escrito en Java. Lo usé sin ningún problema.
fuente
NanoHttpd funciona a la perfección en Android: tenemos código en producción, en manos de los usuarios, que se basa en él.
La licencia permite absolutamente el uso comercial de NanoHttpd, sin implicaciones "virales".
fuente
Esto se puede hacer usando ServerSocket , al igual que en JavaSE. Esta clase está disponible en Android.
android.permission.INTERNET
es requerido.La única parte más complicada es que necesita un hilo de espera separado en ServerSocket, que atienda los sub-sockets que provienen de su
accept
método. También debe detener y reanudar este hilo según sea necesario. El enfoque más simple parece matar el hilo de espera cerrando ServerSocket. Si solo necesita un servidor mientras su actividad está en la parte superior, iniciar y detener el hilo de ServerSocket se puede vincular de manera bastante elegante a los métodos del ciclo de vida de la actividad. Además, si el servidor tiene varios usuarios, puede ser bueno atender las solicitudes en los subprocesos bifurcados. Si solo hay un usuario, esto puede no ser necesario.Si necesita decirle al usuario en qué IP está escuchando el servidor, use NetworkInterface .getNetworkInterfaces (), esta pregunta puede decirle trucos adicionales.
Finalmente, aquí existe posiblemente el servidor Android mínimo completo que es muy corto, simple y puede ser más fácil de entender que las aplicaciones de usuario final terminadas, recomendadas en otras respuestas.
fuente
Otro servidor puede probar http://tjws.sf.net , en realidad ya proporciona una versión habilitada para Android.
fuente
Puedes probar la edición Restlet para Android:
La fuente se puede descargar del sitio web de Restlet :
fuente
Si está utilizando kotlin, considere estas bibliotecas. Está construido para el lenguaje kotlin. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer es muy pequeño, pero la función también es menor.
Ktor es una biblioteca muy agradable, y el uso también es simple
fuente