清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
这是一个直接用 Java 自带的 API 实现的超轻量级的 HTTP 服务器,没有使用第三方类库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.Executors; import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class HttpServerDemo { public static void main(String[] args) throws IOException { InetSocketAddress addr = new InetSocketAddress( 8080 ); HttpServer server = HttpServer.create(addr, 0 ); server.createContext( "/" , new MyHandler()); server.setExecutor(Executors.newCachedThreadPool()); server.start(); System.out.println( "Server is listening on port 8080" ); } } class MyHandler implements HttpHandler { public void handle(HttpExchange exchange) throws IOException { String requestMethod = exchange.getRequestMethod(); if (requestMethod.equalsIgnoreCase( "GET" )) { Headers responseHeaders = exchange.getResponseHeaders(); responseHeaders.set( "Content-Type" , "text/plain" ); exchange.sendResponseHeaders( 200 , 0 ); OutputStream responseBody = exchange.getResponseBody(); Headers requestHeaders = exchange.getRequestHeaders(); Set<String> keySet = requestHeaders.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); List values = requestHeaders.get(key); String s = key + " = " + values.toString() + "\n" ; responseBody.write(s.getBytes()); } responseBody.close(); } } } |