Удивительный. Наверное, сэкономил месяц работы. Можете ли вы использовать его в коммерческом продукте?
Иван Г.
Вы должны прочитать о модифицированной лицензии BSD. Если это позволяет использовать код в коммерческом продукте или нет.
damluar
2
Кажется, я не могу отображать изображения на моей html-странице. Какой каталог следует использовать в HTML для отображения изображений? Спасибо.
Шейн Оливер
путь к изображениям является относительным относительно html-страницы. это не проблема http сервера, это плохой html ..
damluar 03
Могу ли я передать файл, который в настоящее время добавляется в homeDir. Например, я копирую файл с именем f1 в homeDir (используя javacode). Сейчас идет копирование файла, и если кто-то отправит запрос на файл f1, может ли сервер обработать запрос?
Ashwin N Bhanushali
23
NanoHttpd работает как шарм на Android - у нас есть код в производстве, в руках пользователей, который построен на нем.
Лицензия абсолютно разрешает коммерческое использование NanoHttpd без каких-либо «вирусных» последствий.
Где я могу найти учебник / образец того, как его использовать? например, чтобы обслуживать файл, расположенный на устройстве, чтобы другие могли его скачать (или транслировать с него)?
разработчик Android
9
Это можно сделать с помощью ServerSocket , как и в JavaSE. Этот класс доступен на Android. android.permission.INTERNETнеобходимо.
Единственная более сложная часть, вам нужно отдельное ожидание потока на ServerSocket, обслуживающее подсокеты, которые поступают из его accept метода. Вам также необходимо остановить и возобновить этот поток по мере необходимости. Самый простой подход - убить ожидающий поток, закрыв ServerSocket. Если вам нужен только сервер, когда ваша активность находится наверху, запуск и остановка потока ServerSocket можно довольно элегантно связать с методами жизненного цикла активности. Кроме того, если на сервере несколько пользователей, может быть полезно обслуживать запросы в разветвленных потоках. Если есть только один пользователь, это может не понадобиться.
Если вам нужно сообщить пользователю, какой IP-адрес прослушивает сервер, используйте NetworkInterface .getNetworkInterfaces (), этот вопрос может дополнительные сведения.
Наконец, здесь, возможно, есть полный минимальный сервер Android, который очень короткий, простой и может быть проще для понимания, чем готовые приложения для конечных пользователей, рекомендованные в других ответах.
Это жирно по меркам Android (100кб). Хорошо, если вам нужен серьезный сервер на java, а не просто обслуживание файлов или удаленный интерфейс конфигурации / отладки / статуса в вашем приложении.
Ответы:
Рассмотрим этот: https://github.com/NanoHttpd/nanohttpd . Очень маленький, написанный на Java. Я использовал его без проблем.
источник
NanoHttpd работает как шарм на Android - у нас есть код в производстве, в руках пользователей, который построен на нем.
Лицензия абсолютно разрешает коммерческое использование NanoHttpd без каких-либо «вирусных» последствий.
источник
Это можно сделать с помощью ServerSocket , как и в JavaSE. Этот класс доступен на Android.
android.permission.INTERNET
необходимо.Единственная более сложная часть, вам нужно отдельное ожидание потока на ServerSocket, обслуживающее подсокеты, которые поступают из его
accept
метода. Вам также необходимо остановить и возобновить этот поток по мере необходимости. Самый простой подход - убить ожидающий поток, закрыв ServerSocket. Если вам нужен только сервер, когда ваша активность находится наверху, запуск и остановка потока ServerSocket можно довольно элегантно связать с методами жизненного цикла активности. Кроме того, если на сервере несколько пользователей, может быть полезно обслуживать запросы в разветвленных потоках. Если есть только один пользователь, это может не понадобиться.Если вам нужно сообщить пользователю, какой IP-адрес прослушивает сервер, используйте NetworkInterface .getNetworkInterfaces (), этот вопрос может дополнительные сведения.
Наконец, здесь, возможно, есть полный минимальный сервер Android, который очень короткий, простой и может быть проще для понимания, чем готовые приложения для конечных пользователей, рекомендованные в других ответах.
источник
Другой сервер вы можете попробовать http://tjws.sf.net , на самом деле он уже предоставляет версию с поддержкой Android.
источник
Вы можете попробовать Restlet edition для Android:
Исходный код можно скачать с сайта Restlet :
источник
Если вы используете kotlin, подумайте об этой библиотеке. Он построен для языка котлин. https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer очень маленький, но и функции меньше.
Ktor - очень хорошая библиотека, и использование тоже простое
источник