我使用下面的代码打开https服务器。当我去我的ip地址:xx.xxx.xxx.xxx zip文件下载正常。但是当我访问ip时:https://xx.xxx.xxx.xxx/,zip文件不会自动下载我是一个新手,所以如果可能的话,请给予我一个例子代码.谢谢你
public class Main implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
Headers h = exchange.getResponseHeaders();
h.add("Content-Type", "application/octet-stream");
h.add("Content-Disposition", "attachment; filename=Pack.zip");
exchange.sendResponseHeaders(200, 0);
OutputStream os = exchange.getResponseBody();
Files.newInputStream(Paths.get("C://Pack.zip")).transferTo(os);
os.close();
}
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(36), 0);
server.createContext("/", new Main());
server.start();
}
}
1条答案
按热度按时间pepwfjgg1#
我想,你正在寻找的是这个答案here。如here所述,您的服务器可以在不使用证书的情况下工作,但是,您应该提供证书,否则与http相比,https将没有任何效果。
查看第一个链接,它的描述非常详细,你将需要什么,来设置一个简单的Java https-Server。second answer(不是排名最高的)更接近您的代码。