Java 查找http URL路径的难题
我发现自己陷入了一个两难境地,无法找到一种方法来检索urlpath。 我想从http url检索基本url,例如:Java 查找http URL路径的难题,java,url,Java,Url,我发现自己陷入了一个两难境地,无法找到一种方法来检索urlpath。 我想从http url检索基本url,例如: 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/pat
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)
如何克服这个问题?url对象不知道/path2是文件还是目录,因为如果url不以“/”结尾,它就不是目录。您可以添加一个附加检查来处理此问题。拆分url并检查最后一部分是否包含“.”,如“index.html”中所示 代码示例
String[] urlSplt = urlStr.split("/");
if(urlSplt[urlSplt.length - 1].contains(".")){
//URL is a file
} else{
//url is not a file
}
祝你好运 正如我所解释的:URL.getHost()/getPath()/getFile()您可以将代码添加到问题中吗?当我们看到代码时,更容易看到问题所在。