## com.gargoylesoftware.htmlunit.util
Class UrlUtils

    java.lang.Object
      com.gargoylesoftware.htmlunit.util.UrlUtils

    public final class UrlUtils

extends java.lang.Object

URL utilities class that makes it easy to create new URLs based off of old URLs without having to assemble or parse them yourself.

Version:
  $Revision: 4791 $
Author:
  Daniel Gredler, Martin Tamme, Sudhan Moghe

Method Summary
`static java.net.URL` `getUrlWithNewHost(java.net.URL u, java.lang.String newHost)` Creates and returns a new URL identical to the specified URL, except using the specified host.
`static java.net.URL` `getUrlWithNewPath(java.net.URL u, java.lang.String newPath)` Creates and returns a new URL identical to the specified URL, except using the specified path.
`static java.net.URL` `getUrlWithNewPort(java.net.URL u, int newPort)` Creates and returns a new URL identical to the specified URL, except using the specified port.
`static java.net.URL` `getUrlWithNewProtocol(java.net.URL u, java.lang.String newProtocol)` Creates and returns a new URL identical to the specified URL, except using the specified protocol.
`static java.net.URL` `getUrlWithNewQuery(java.net.URL u, java.lang.String newQuery)` Creates and returns a new URL identical to the specified URL, except using the specified query string.
`static java.net.URL` `getUrlWithNewRef(java.net.URL u, java.lang.String newRef)` Creates and returns a new URL identical to the specified URL, except using the specified reference.
`static java.lang.String` `resolveUrl(java.lang.String baseUrl, java.lang.String relativeUrl)` Resolves a given relative URL against a base URL.
`static java.lang.String` `resolveUrl(java.net.URL baseUrl, java.lang.String relativeUrl)` Resolves a given relative URL against a base URL.
`static java.net.URL` `toUrlSafe(java.lang.String url)` Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an `"about:..."` URL, a `"javascript:..."` URL, or a `data:...` URL.
`static java.net.URL` `toUrlUnsafe(java.lang.String url)` Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an `"about:..."` URL, a `"javascript:..."` URL, or a `data:...` URL.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### toUrlSafe

    public static java.net.URL toUrlSafe(java.lang.String url)

  Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an `"about:..."` URL, a `"javascript:..."` URL, or a `data:...` URL.

  The caller should be sure that URL strings passed to this method will parse correctly as URLs, as this method never expects to have to handle `MalformedURLException`s.

  Parameters:
    `url` - the URL string to convert into a URL instance
  Returns:
    the constructed URL instance

### toUrlUnsafe

    public static java.net.URL toUrlUnsafe(java.lang.String url)
                                    throws java.net.MalformedURLException

  Constructs a URL instance based on the specified URL string, taking into account the fact that the specified URL string may represent an `"about:..."` URL, a `"javascript:..."` URL, or a `data:...` URL.

  Unlike `toUrlSafe(String)`, the caller need not be sure that URL strings passed to this method will parse correctly as URLs.

  Parameters:
    `url` - the URL string to convert into a URL instance
  Returns:
    the constructed URL instance
  Throws:
    `java.net.MalformedURLException` - if the URL string cannot be converted to a URL instance

### getUrlWithNewProtocol

    public static java.net.URL getUrlWithNewProtocol(java.net.URL u,
                                                     java.lang.String newProtocol)
                                              throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified protocol.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newProtocol` - the new protocol to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified protocol
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### getUrlWithNewHost

    public static java.net.URL getUrlWithNewHost(java.net.URL u,
                                                 java.lang.String newHost)
                                          throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified host.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newHost` - the new host to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified host
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### getUrlWithNewPort

    public static java.net.URL getUrlWithNewPort(java.net.URL u,
                                                 int newPort)
                                          throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified port.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newPort` - the new port to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified port
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### getUrlWithNewPath

    public static java.net.URL getUrlWithNewPath(java.net.URL u,
                                                 java.lang.String newPath)
                                          throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified path.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newPath` - the new path to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified path
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### getUrlWithNewRef

    public static java.net.URL getUrlWithNewRef(java.net.URL u,
                                                java.lang.String newRef)
                                         throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified reference.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newRef` - the new reference to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified reference
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### getUrlWithNewQuery

    public static java.net.URL getUrlWithNewQuery(java.net.URL u,
                                                  java.lang.String newQuery)
                                           throws java.net.MalformedURLException

  Creates and returns a new URL identical to the specified URL, except using the specified query string.

  Parameters:
    `u` - the URL on which to base the returned URL
    `newQuery` - the new query string to use in the returned URL
  Returns:
    a new URL identical to the specified URL, except using the specified query string
  Throws:
    `java.net.MalformedURLException` - if there is a problem creating the new URL

### resolveUrl

    public static java.lang.String resolveUrl(java.lang.String baseUrl,
                                              java.lang.String relativeUrl)

  Resolves a given relative URL against a base URL. See RFC1808 Section 4 for more details.

  Parameters:
    `baseUrl` - The base URL in which to resolve the specification.
    `relativeUrl` - The relative URL to resolve against the base URL.
  Returns:
    the resolved specification.

### resolveUrl

    public static java.lang.String resolveUrl(java.net.URL baseUrl,
                                              java.lang.String relativeUrl)

  Resolves a given relative URL against a base URL. See RFC1808 Section 4 for more details.

  Parameters:
    `baseUrl` - The base URL in which to resolve the specification.
    `relativeUrl` - The relative URL to resolve against the base URL.
  Returns:
    the resolved specification.

Copyright © 2002-2011 Gargoyle Software Inc.. All Rights Reserved.