Java standard library (com.sun.net.httpserver) Java
一个用于 Java standard library (com.sun.net.httpserver) 的 Java 代码片段,以空 GIF 响应对 /pixel.gif 的请求,GIF 在启动时只解码一次。
Java standard library (com.sun.net.httpserver) Java
import com.sun.net.httpserver.HttpServer;
import java.net.InetSocketAddress;
import java.util.Base64;
public class Pixel {
private static final byte[] GIF = Base64.getDecoder().decode("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==");
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/pixel.gif", exchange -> {
// Contexts match by prefix, so check for the exact path.
if (!exchange.getRequestURI().getPath().equals("/pixel.gif")) {
exchange.sendResponseHeaders(404, -1);
exchange.close();
return;
}
exchange.getResponseHeaders().set("Content-Type", "image/gif");
exchange.getResponseHeaders().set("Cache-Control", "no-store");
exchange.sendResponseHeaders(200, GIF.length);
try (var body = exchange.getResponseBody()) {
body.write(GIF);
}
});
server.start();
}
}
我们运行了此代码片段,并比对了它返回的字节。
验证
curl -sI http://localhost:8080/pixel.gif
官方网站: Java standard library (com.sun.net.httpserver)