gpt4 book ai didi

java - 确定 Java 中 URL 末尾是否应该有一个正斜杠

转载 作者:行者123 更新时间:2023-12-01 18:58:18 26 4
gpt4 key购买 nike

我正在尝试进行一些网络爬行,并且遇到了何时添加斜杠的问题。我知道有些网站最后确实有它,有些则没有,但在浏览器中输入错误的网站只会将您重定向到正确的网站。规范化会在末尾添加斜杠,但在尝试将相对 URL 转换为绝对 URL 时会导致问题。

例如,如果用户选择绝对 URL http://stack.com/more 但实际(重定向)URL 为 http://stack.com/more/ 相对 URL 为 index.html

然后执行URL newurl = new URL(url,relativeURL);

产生http://stack.com/index.html(不存在的页面)

实际上应该是http://stack.com/more/index.html(真实页面)

有人知道在末尾正确添加斜杠的好方法吗?

最佳答案

如果相对 URL 以 / 开头,则它仅相对于根(域)。所以两者都

http://stack.com/more/ + /index.html

http://stack.com/more + /index.html

正确解析为

http://stack.com/index.html

不是

http://stack.com/more/index.html

在您的示例中,more 末尾是否有 / 没有任何区别。

当相对 URL 上没有前导斜杠时,技巧就出现了,例如index.html。解决这些问题时,您应该删除最后一段并将其替换为相对路径。在这种情况下,情况会有所不同,因为

http://stack.com/more/ + index.html

决定

http://stack.com/more/index.html

但是

http://stack.com/more + index.html

决定

http://stack.com/index.html

(index.html 替换 more,因为 more 是最后一段)。

关于java - 确定 Java 中 URL 末尾是否应该有一个正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249640/

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