Ivan Ivan - 2 months ago 16
Scala Question

Could you share a link to an URL parsing implementation?

As far as I understand, an URL consists of the folowing fields:


  • Protocol (http, https, ftp, etc.)

  • User name

  • User Password

  • Host address (an IP address or a DNS FQDN)

  • Port (which can be implied)

  • Path to a document inside the server documents root

  • Set of arguments and values

  • Document part (#)



as

protocol://user:password@host:port/path/document?arg1=val1&arg2=val2#part


I need a code to get value (or null/empty value if not set) of any of these fields from any given URL string. Am I to implement this myself or there is already a code for this so I don't need to invent a wheel?

I am particularly interested in Scala or Java code. C#, PHP, Python or Perl code can also be useful.

Answer

The URL class gives you everything you need. See http://download.oracle.com/javase/6/docs/api/java/net/URL.html

URL url = new URL("protocol://user:password@host:port/path/document?arg1=val1&arg2=val2#part");
url.getProtocol();
url.getUserInfo();
url.getAuthority();
url.getHost();
url.getPort();
url.getPath(); // document part is contained within the path field
url.getQuery();
url.getRef(); // gets #part