diff options
author | Paul Hawke <paul.hawke@gmail.com> | 2013-12-10 18:18:43 -0600 |
---|---|---|
committer | Paul Hawke <paul.hawke@gmail.com> | 2013-12-10 18:18:43 -0600 |
commit | 939e8d5a14f3065ebd9458517ceb91cba8276448 (patch) | |
tree | 96a806ea952e43cfc4a280101b90050629057aee /samples | |
parent | fbe92e0eb77710addafab0d48e7be5e147f17d00 (diff) | |
download | nanohttpd-939e8d5a14f3065ebd9458517ceb91cba8276448.tar.gz |
Updated samples to use the non-deprecated serve() API.
Diffstat (limited to 'samples')
-rw-r--r-- | samples/src/main/java/fi/iki/elonen/DebugServer.java | 54 | ||||
-rw-r--r-- | samples/src/main/java/fi/iki/elonen/HelloServer.java | 9 |
2 files changed, 52 insertions, 11 deletions
diff --git a/samples/src/main/java/fi/iki/elonen/DebugServer.java b/samples/src/main/java/fi/iki/elonen/DebugServer.java index bb89181..ae3fff1 100644 --- a/samples/src/main/java/fi/iki/elonen/DebugServer.java +++ b/samples/src/main/java/fi/iki/elonen/DebugServer.java @@ -1,5 +1,7 @@ package fi.iki.elonen; +import java.io.IOException; +import java.util.HashMap; import java.util.Map; public class DebugServer extends NanoHTTPD { @@ -11,20 +13,56 @@ public class DebugServer extends NanoHTTPD { ServerRunner.run(DebugServer.class); } - @Override - public Response serve(String uri, Method method, Map<String, String> header, Map<String, String> parms, Map<String, String> files) { + @Override public Response serve(IHTTPSession session) { StringBuilder sb = new StringBuilder(); sb.append("<html>"); sb.append("<head><title>Debug Server</title></head>"); sb.append("<body>"); - sb.append("<h1>Response</h1>"); - sb.append("<p><blockquote><b>URI -</b> ").append(String.valueOf(uri)).append("<br />"); - sb.append("<b>Method -</b> ").append(String.valueOf(method)).append("</blockquote></p>"); - sb.append("<h3>Headers</h3><p><blockquote>").append(String.valueOf(header)).append("</blockquote></p>"); - sb.append("<h3>Parms</h3><p><blockquote>").append(String.valueOf(parms)).append("</blockquote></p>"); - sb.append("<h3>Files</h3><p><blockquote>").append(String.valueOf(files)).append("</blockquote></p>"); + sb.append("<h1>Debug Server</h1>"); + + sb.append("<p><blockquote><b>URI</b> = ").append(String.valueOf(session.getUri())).append("<br />"); + + sb.append("<b>Method</b> = ").append(String.valueOf(session.getMethod())).append("</blockquote></p>"); + + sb.append("<h3>Headers</h3><p><blockquote>").append(toString(session.getHeaders())).append("</blockquote></p>"); + + sb.append("<h3>Parms</h3><p><blockquote>").append(toString(session.getParms())).append("</blockquote></p>"); + + sb.append("<h3>Parms (multi values?)</h3><p><blockquote>"). + append(toString(decodeParameters(session.getQueryParameterString()))).append("</blockquote></p>"); + + try { + Map<String, String> files = new HashMap<String, String>(); + session.parseBody(files); + sb.append("<h3>Files</h3><p><blockquote>").append(toString(files)).append("</blockquote></p>"); + } catch (IOException e) { + e.printStackTrace(); + } catch (ResponseException e) { + e.printStackTrace(); + } sb.append("</body>"); sb.append("</html>"); return new Response(sb.toString()); } + + private String toString(Map<String, ? extends Object> map) { + if (map.size() == 0) { + return ""; + } + return unsortedList(map); + } + + private String unsortedList(Map<String, ? extends Object> map) { + StringBuilder sb = new StringBuilder(); + sb.append("<ul>"); + for (Map.Entry entry : map.entrySet()) { + listItem(sb, entry); + } + sb.append("</ul>"); + return sb.toString(); + } + + private void listItem(StringBuilder sb, Map.Entry entry) { + sb.append("<li><code><b>").append(entry.getKey()).append("</b> = ").append(entry.getValue()).append("</code></li>"); + } } diff --git a/samples/src/main/java/fi/iki/elonen/HelloServer.java b/samples/src/main/java/fi/iki/elonen/HelloServer.java index 8bad0ab..c7c7da4 100644 --- a/samples/src/main/java/fi/iki/elonen/HelloServer.java +++ b/samples/src/main/java/fi/iki/elonen/HelloServer.java @@ -6,15 +6,17 @@ import java.util.Map; * An example of subclassing NanoHTTPD to make a custom HTTP server. */ public class HelloServer extends NanoHTTPD { - private HelloServer() { + public HelloServer() { super(8080); } - @Override - public Response serve(String uri, Method method, Map<String, String> header, Map<String, String> parms, Map<String, String> files) { + @Override public Response serve(IHTTPSession session) { + Method method = session.getMethod(); + String uri = session.getUri(); System.out.println(method + " '" + uri + "' "); 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" + @@ -28,6 +30,7 @@ public class HelloServer extends NanoHTTPD { return new NanoHTTPD.Response(msg); } + public static void main(String[] args) { ServerRunner.run(HelloServer.class); } |