嵌入式HTTP服务器NanoHTTPD.zip

时间:2022-08-06 11:24:49
【文件属性】:

文件名称:嵌入式HTTP服务器NanoHTTPD.zip

文件大小:324KB

文件格式:ZIP

更新时间:2022-08-06 11:24:49

开源项目

NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很小。可轻松定制临时文件使用和线程模型。NanoHTTPD for JDK 1.1https://github.com/NanoHttpd/nanohttpd/tree/nanohttpd-for-java1.1示例代码:package fi.iki.elonen.debug;   import fi.iki.elonen.NanoHTTPD; import fi.iki.elonen.ServerRunner;   import java.util.HashMap; import java.util.List; import java.util.Map;   public class DebugServer extends NanoHTTPD {     public DebugServer() {         super(8080);     }       public static void main(String[] args) {         ServerRunner.run(DebugServer.class);     }       @Override public Response serve(IHTTPSession session) {         Map> decodedQueryParameters =             decodeParameters(session.getQueryParameterString());           StringBuilder sb = new StringBuilder();         sb.append("<html>");         sb.append("<head><title>Debug Server</title></head>");         sb.append("<body>");         sb.append("

Debug Server

");           sb.append("

URI = ").append(             String.valueOf(session.getUri())).append("");           sb.append("Method = ").append(             String.valueOf(session.getMethod())).append("

");           sb.append("

Headers

").             append(toString(session.getHeaders())).append("

");           sb.append("

Parms

").             append(toString(session.getParms())).append("

");           sb.append("

Parms (multi values?)

").             append(toString(decodedQueryParameters)).append("

");           try {             Map files = new HashMap();             session.parseBody(files);             sb.append("

Files

").                 append(toString(files)).append("

");         } catch (Exception e) {             e.printStackTrace();         }           sb.append("</body>");         sb.append("</html>");         return new Response(sb.toString());     }       private String toString(Map map) {         if (map.size() == 0) {             return "";         }         return unsortedList(map);     }       private String unsortedList(Map map) {         StringBuilder sb = new StringBuilder();         sb.append("
    ");         for (Map.Entry entry : map.entrySet()) {             listItem(sb, entry);         }         sb.append("
");         return sb.toString();     }       private void listItem(StringBuilder sb, Map.Entry entry) {         sb.append("
  • ").append(entry.getKey()).             append(" = ").append(entry.getValue()).append("
  • ");     } } 标签:NanoHTTPD


    网友评论