| import java.io.*; |
| import java.util.*; |
| |
| /** |
| * An example of subclassing NanoHTTPD to make a custom HTTP server. |
| */ |
| public class HelloServer extends NanoHTTPD |
| { |
| public HelloServer() throws IOException |
| { |
| super(8080, new File(".")); |
| } |
| |
| public Response serve( String uri, String method, Properties header, Properties parms, Properties files ) |
| { |
| System.out.println( method + " '" + uri + "' " ); |
| String msg = "<html><body><h1>Hello server</h1>\n"; |
| if ( parms.getProperty("username") == null ) |
| msg += |
| "<form action='?' method='get'>\n" + |
| " <p>Your name: <input type='text' name='username'></p>\n" + |
| "</form>\n"; |
| else |
| msg += "<p>Hello, " + parms.getProperty("username") + "!</p>"; |
| |
| msg += "</body></html>\n"; |
| return new NanoHTTPD.Response( HTTP_OK, MIME_HTML, msg ); |
| } |
| |
| |
| public static void main( String[] args ) |
| { |
| try |
| { |
| new HelloServer(); |
| } |
| catch( IOException ioe ) |
| { |
| System.err.println( "Couldn't start server:\n" + ioe ); |
| System.exit( -1 ); |
| } |
| System.out.println( "Listening on port 8080. Hit Enter to stop.\n" ); |
| try { System.in.read(); } catch( Throwable t ) {}; |
| } |
| } |