我正在尝试使用 java 获取基本 URL。我在我的代码中使用了 jtidy 解析器来获取标题。我正在使用 jtidy 正确获取标题,但我没有从给定的 URL 获取基本 url。
我有一些 URL 作为输入:
String s1 = "http://staff.unak.is/andy/GameProgramming0910/new_page_2.htm";
String s2 = "http://www.complex.com/pop-culture/2011/04/10-hottest-women-in-fast-and-furious-movies";
从第一个字符串中,我想获取 "http://staff.unak.is/andy/GameProgramming0910/"
作为基本 URL,从第二个字符串中,我想要 “http://www.complex.com/”
作为基本 URL。
我正在使用代码:
URL url = new URL(s1);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream in = conn.getInputStream();
Document doc = new Tidy().parseDOM(in, null);
String titleText = doc.getElementsByTagName("title").item(0).getFirstChild()
.getNodeValue();
我正在获取 titletext
,但请告诉我如何从上面给定的 URL 获取基本 URL?
最佳答案
尝试使用 java.net.URL 类,它将帮助您:
对于第二种情况,它更容易,你可以使用新的 URL(s2).getHost();
对于第一种情况,您可以获取主机并使用 getFile() 方法,并删除最后一个斜杠 ("/") 之后的字符串。类似于:(代码未测试)
URL url = new URL(s1);
String path = url.getFile().substring(0, url.getFile().lastIndexOf('/'));
String base = url.getProtocol() + "://" + url.getHost() + path;
关于java - 如何使用java从给定的url中获取基本url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6013628/