AndroidWebServer: Empower Your Android App with a Built-In Web Server

Android Arsenal Platform API Twitter

Introducing AndroidWebServer, an exceptional sample project that equips your Android application with a seamless Web Server using the NanoHTTPD library.

How to Utilize AndroidWebServer

  1. To integrate this Android Web Server into your project, follow these simple steps:

    • Add the NanoHTTPD library as a dependency in your build.gradle file:

      compile 'org.nanohttpd:nanohttpd:2.2.0'
    • Then, create your Android Web Server class. Here's an example:

      public class AndroidWebServer extends NanoHTTPD {
      
          public AndroidWebServer(int port) {
              super(port);
          }
      
          public AndroidWebServer(String hostname, int port) {
              super(hostname, port);
          }
          
          //...
      }
  2. Add a serve() method to your Android Web Server class:

    @Override
    public Response serve(IHTTPSession session) {
        String msg = "<html><body><h1>Hello server</h1>\n";
        Map<String, String> parms = session.getParms();
        if (parms.get("username") == null) {
            msg += "<form action='?' method='get'>\n";
            msg += "<p>Your name: <input type='text' name='username'></p>\n";
            msg += "</form>\n";
        } else {
            msg += "<p>Hello, " + parms.get("username") + "!</p>";
        }
        return newFixedLengthResponse( msg + "</body></html>\n" );
    }

    The serve() method is critical because it defines the response sent by your web server.

  3. You can now instantiate and start your server in your activity. (Full implementation can be found here)

    AndroidWebServer androidWebServer = new AndroidWebServer(port);
    androidWebServer.start();

    To stop the server:

    androidWebServer.stop();

Licensing

AndroidWebServer, Elevate your Android app with this valuable Web Server tool while adhering to open-source principles.