gpt4 book ai didi

java - 我想编写一个 Java 程序,使用对浏览器的 HTTP 302 响应消息将所有 GET 请求从浏览器重定向到给定的 URL

转载 作者:可可西里 更新时间:2023-11-01 17:06:31 30 4
gpt4 key购买 nike

首先创建网络服务器:

主要方法的代码

HttpServer server = null;
try {
server = HttpServer.create(new InetSocketAddress(9000), 0);
} catch (IOException ex) {

}
server.createContext("/", new MyHandler());
server.setExecutor(null);
server.start();

在同一个类中,我创建了 Myhandelr 类,以便将所有 GET 请求重定向到 google.com 或任何网站。

static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String response = "This is the response";
boolean redirect=false;
if(t.getRequestMethod().equalsIgnoreCase("GET")){
t.sendResponseHeaders(302, response.length());
HttpURLConnection conn = (HttpURLConnection) new URL("http://localhost:9000")
.openConnection();
int status = t.getResponseCode();
if (status != HttpURLConnection.HTTP_OK) {
if (status == HttpURLConnection.HTTP_MOVED_TEMP
|| status == HttpURLConnection.HTTP_MOVED_PERM
|| status == HttpURLConnection.HTTP_SEE_OTHER)
redirect = true;
}
if (redirect) {
String newUrl ="http://www.google.com";
conn = (HttpURLConnection) new URL(newUrl).openConnection();
System.out.println("Redirect to URL : " + newUrl);
}
}
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());

os.close();
}
}

我不知道我做错了什么,我也不确定这是否是最好的方法。

最佳答案

发回 302,添加带有所需 URL 的 Location header ,浏览器会为您完成所有工作,无需在您的代码中实现任何内容。

关于java - 我想编写一个 Java 程序,使用对浏览器的 HTTP 302 响应消息将所有 GET 请求从浏览器重定向到给定的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39308564/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com