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.
PHP: http://au.php.net/manual/en/function.parse-url.php
Based on @Codemwnci answer, here's a full example to get the
filename
from aurl
with or without arguments:URL does not support ldap by default. One can extend URL and add protocols, but I ended up with a simple parser and a small new class.
Use the java.net.URI class for this. URLs are for real resources and real protocols. URIs are for possibly non-existent protocols and resources.
In Java, just use the
URL
class. It provides methods such asgetProtocol
,getHost
, etc. to obtain the different parts of the URL.The URL class gives you everything you need. See http://download.oracle.com/javase/6/docs/api/java/net/URL.html