gpt4 book ai didi

java - URLConnection.getURL 方法

转载 作者:行者123 更新时间:2023-11-30 09:13:48 25 4
gpt4 key购买 nike

我想对一小段 Java 代码发表意见。

下面的方法是否总是返回与输入字符串相同的输出字符串?

private static String func(final String url)
{
HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();
con.setInstanceFollowRedirects(true);
...
...
return con.getURL().toString();
}

题目涉及所有可能的场景,比如自动跳转等

最佳答案

如果你看URLConnection.getUrl() implementation ,您可以看到它返回传递给构造函数的原始 URL。

HttpURLConnection也不会更改原始网址。

要获取重定向的目标 URL,您应该调用 con.getHeaderField("Location"); - 例如:Retrieve the final location of a given URL in Java

因此,在调用 connect() 或其他导致建立连接的方法之前,您会获得原始 URL。

如果您设置 ((HttpURLConnection)con).setInstanceFollowRedirects(true); 然后在 connect() 之后,如果它确实重定向,您将获得目标 URL。

重定向可能不会自动发生,例如当协议(protocol)更改时(例如 http -> https)。

关于java - URLConnection.getURL 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20870733/

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