Как создать HTTP-сервер в Android?

Я хотел бы создать простой HTTP-сервер в Android для обслуживания некоторого контента клиенту.

Любые советы о том, как создать сервер или использовать какую-либо существующую библиотеку?

Ответ 1

Рассмотрим это: https://github.com/NanoHttpd/nanohttpd. Очень маленький, написанный на Java. Я использовал его без проблем.

Ответ 2

NanoHttpd работает как шарм на Android - у нас есть код в производстве, в руках пользователей, который построен на нем.

Лицензия абсолютно разрешает коммерческое использование NanoHttpd без каких-либо "вирусных" последствий.

Ответ 3

Другой сервер, который вы можете попробовать http://tjws.sf.net, на самом деле он уже поддерживает Android.

Ответ 5

Вы можете попробовать Restlet edition для android:

Источник можно загрузить с сайта Restlet :

Ответ 6

Это можно сделать, используя ServerSocket, как и на JavaSE. Этот класс доступен на Android. android.permission.INTERNET требуется.

Единственная более сложная часть - вам нужен отдельный поток на сервере ServerSocket, обслуживающий под-сокеты, которые поступают из его метода accept. Вам также необходимо остановить и возобновить этот поток по мере необходимости. Простейший подход, похоже, убивает ожидающий поток, закрывая ServerSocket. Если вам нужен только сервер, пока ваша деятельность находится сверху, запуск и остановка потока ServerSocket может быть довольно элегантно привязана к методам жизненного цикла активности. Кроме того, если сервер имеет несколько пользователей, может быть полезно обслуживать запросы в разветвленных потоках. Если есть только один пользователь, это может быть необязательно.

Если вам нужно указать пользователю, на котором IP-сервер прослушивает, используйте NetworkInterface.getNetworkInterfaces(), этот вопрос может дать дополнительные трюки.

Наконец, здесь, возможно, существует минимальный, простой и минимальный минимальный Android-сервер, который может быть легче понять, чем конечный конечный пользователь приложений, рекомендованных в других ответах.