Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找http URL路径的难题_Java_Url - Fatal编程技术网

Java 查找http 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

我发现自己陷入了一个两难境地,无法找到一种方法来检索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/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()您可以将代码添加到问题中吗?当我们看到代码时,更容易看到问题所在。