2010-10-21 37 views
11

據我瞭解,一個URL由如下因素字段:你能分享一個鏈接到URL解析實現嗎?

  • 協議(HTTP,HTTPS,FTP等)
  • 用戶名
  • 用戶密碼
  • 主機地址( IP地址或DNS FQDN)
  • 端口(可暗示)
  • 路徑到文檔裏面的服務器文檔根
  • 集argume的NTS和值
  • 文檔部件(#)

protocol://user:[email protected]:port/path/document?arg1=val1&arg2=val2#part

我需要一個代碼(如果未設置或空/空值)的任何一個字段從任何給定中獲取價值網址字符串。我是自己實現這個還是已經有了這個代碼,所以我不需要發明一個輪子?

我對Scala或Java代碼特別感興趣。 C#,PHP,Python或Perl代碼也很有用。

回答

3

在Java中,只需使用URL class。它提供了諸如getProtocol,getHost等方法來獲取URL的不同部分。

8

對此使用java.net.URI類。 URL是用於真實資源和真實協議的。 URIs可能是不存在的協議和資源。

+0

那麼,爲什麼我應該使用的URI如果我要操作真實網頁的地址,則使用URL? – Ivan 2010-10-22 19:21:03

+0

因爲您要求解析實現,這是java.net.URI的。 java.net.URL是一種連接機制。 – EJP 2010-10-23 00:58:02

0

默認情況下,URL不支持ldap。我們可以擴展URL和添加協議,但是我最終得到了一個簡單的解析器和一個小的新類。

0

基於@Codemwnci答案,這裏有一個完整的例子來帶或不帶參數從url得到filename

URL videoUrl = new URL("https://somesite.com/path/v/t43.1792-2/1186696120_n.mp4?efg=something"); 
String videoFileName = videoUrl.getPath().substring(videoUrl.getPath().lastIndexOf("/") + 1); 

1186696120_n.mp4

相關問題