Java 标准版附带了一个 HTTP 服务器 API,可以用它来创建一个简单、能工作的嵌入式HTTP 服务器。
下面的程序不需要任何外部依赖。 它监听 8000 端口,对进来的请求返回一个成功的 HTTP 响应(200),响应内容为如下的 JSON 对象:
{"testResponse":"Hello World"} 这里需要一个 Java 源文件,包含一个定义了 main 方法的类。
在 main 方法中,创建了一个服务器实例,该服务器实例根据 URL 将请求委托给一个静态处理器(这里被定义为一个静态内部类):
代码举例:
package org.myself.demo;
import java.io.*;
import java.net.InetSocketAddress;
import java.util.logging.Logger;
import com.sun.net.httpserver.*;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null);
Logger.getGlobal().info("Starting server on port:8000");
server.start();
}
static class MyHandler implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
String response = "{\"testResponse\":\"Hello World\"}";
t.getResponseHeaders().set("Content-Type", "application/json");
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}