2010-10-21 36 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

相关问题