Дилемма для поиска http URL пути - PullRequest
1 голос
/ 04 марта 2012

Я нахожусь в дилемме, чтобы найти способ получить urlpath. Я хочу получить базовый URL-адрес из 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 Ответ

3 голосов
/ 04 марта 2012

Объект 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
}

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...