gpt4 book ai didi

java - 打开到 "final"(非重定向)URL 的 HTTP 连接

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:28 30 4
gpt4 key购买 nike

给定一个 URL 字符串,我想获得到“最终”(非重定向)URL 的 HTTP 连接:

  • 如果响应代码是 2xx,那么我可以简单地使用初始连接。

  • 如果响应代码是 3xx,那么我需要打开一个新连接并重试。

  • 对于任何其他响应代码(例如 4xx 或 5xx),我“放弃”并返回 null

我的代码如下:

HttpURLConnection getConnection(String url) throws Exception
{
HttpURLConnection connection = (HttpURLConnection)new URL(url).openConnection();
while (true)
{
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("User-Agent","");
int responseCode = connection.getResponseCode();
switch (responseCode/100)
{
case 2:
return connection;
case 3:
switch (responseCode)
{
case 300:
connection = ???
break;
case 301:
case 302:
case 303:
case 305:
case 307:
connection = (HttpURLConnection)new URL(connection.getHeaderField("Location")).openConnection();
break;
case 304:
connection = ???
break;
default:
return null;
}
break;
default:
return null;
}
}
}

我的问题是:

  1. 我应该如何处理响应代码 300 和 304?

  2. 我是否正确处理了响应代码 301、302、303、305 和 307?

对于上述方法的任何其他建设性意见也将不胜感激。

谢谢

最佳答案

虽然所有这些都是某种重定向,但很难想出一个模型来处理它们。

您可能想阅读 http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-26.html#rfc.section.6.4获取更多信息。

关于java - 打开到 "final"(非重定向)URL 的 HTTP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599719/

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