找到http URL路径的两难选择

时间:2012-03-04 01:06:50

标签: java url

我发现自己处于两难境地,无法找到检索urlpath的方法。 我想从http网址中检索基本网址,例如:

http://www.test.com/somepath/path1/
base url is : test.com/somepath/path1

http://www.test.com/somepath/path1/file1.html
base url is : test.com/somepath/path1

http://www.test.com/somepath/path1/path2
base url is : test.com/somepath/path1/path2

但是在java中使用URL对象并使用getHost()和getPath()以及getFile(),我将得到以下结果:

1.
host : www.test.com (correct)
path : /somepath/path1 (correct)
file : /somepath/path1 (it should be empty but its not!)
2.
host : www.test.com (correct)
path : /somepath/path1/file1.html (incorrect)
file : /somepath/path1/file1.html (it should be file1.html)
3.
host : www.test.com (correct)
path : /somepath/path1/path2 (correct)
file : /somepath/path1/path2 (it should be empty/null)

我该如何克服这个问题?

1 个答案:

答案 0 :(得分:3)

url对象不知道/ path2是文件还是目录,因为如果url不是以“/”结尾,那么官方它不是目录。您可以添加其他检查以解决此问题。拆分网址并检查最后一部分是否包含“。”例如在“index.html”中找到。

代码示例

String[] urlSplt = urlStr.split("/");
if(urlSplt[urlSplt.length - 1].contains(".")){
    //URL is a file
} else{
    //url is not a file
}
祝你好运!