Package org.apache.solr.common.util

## Class URLUtil

- java.lang.Object
- - org.apache.solr.common.util.URLUtil

    public class URLUtil
    extends Object

### Field Summary

Fields
`static Pattern` `URL_PREFIX`

### Constructor Summary

Constructors
`URLUtil()`

### Method Summary

All Methods Static Methods Concrete Methods
`static String` `buildCoreUrl​(String baseUrl, String coreName)` Create a core URL (e.g.
`static String` `extractBaseUrl​(String coreUrl)`
`static String` `extractCoreFromCoreUrl​(String coreUrl)`
`static String` `getBaseUrlForNodeName​(String nodeName, String urlScheme)` Construct a V1 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.
`static String` `getBaseUrlForNodeName​(String nodeName, String urlScheme, boolean isV2)` Construct a V1 or a V2 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.
`static String` `getNodeNameForBaseUrl​(String solrUrl)` Construct base Solr URL to a Solr node name
`static String` `getScheme​(String url)`
`static boolean` `hasScheme​(String url)`
`static String` `removeScheme​(String url)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### URL_PREFIX

    public static final Pattern URL_PREFIX

### Constructor Detail

#### URLUtil

    public URLUtil()

### Method Detail

#### removeScheme

    public static String removeScheme​(String url)

#### hasScheme

    public static boolean hasScheme​(String url)

#### getScheme

    public static String getScheme​(String url)

#### extractBaseUrl

    public static String extractBaseUrl​(String coreUrl)

Parameters:
  `coreUrl` - a URL pointing to a specific "core" or collection (i.e. that adheres loosely to the form "scheme://host:port/solr/coreName")
Returns:
  a URL pointing to the Solr node's root path

#### extractCoreFromCoreUrl

    public static String extractCoreFromCoreUrl​(String coreUrl)

#### buildCoreUrl

    public static String buildCoreUrl​(String baseUrl,
                                      String coreName)

Create a core URL (e.g. "http://localhost:8983/solr/myCore") from its individual components

Parameters:
  `baseUrl` - a Solr "base URL" (e.g. "http://localhost:8983/solr/")
  `coreName` - the name of a Solr core or collection (with no leading or trailing slashes)

#### getBaseUrlForNodeName

    public static String getBaseUrlForNodeName​(String nodeName,
                                               String urlScheme)

Construct a V1 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.

Parameters:
  `nodeName` - name of the Solr node
  `urlScheme` - scheme for the base url ('http' or 'https')
Returns:
  url that looks like `https://app-node-1:8983/solr`
Throws:
  `IllegalArgumentException` - if the provided node name is malformed

#### getBaseUrlForNodeName

    public static String getBaseUrlForNodeName​(String nodeName,
                                               String urlScheme,
                                               boolean isV2)

Construct a V1 or a V2 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.

Parameters:
  `nodeName` - name of the Solr node
  `urlScheme` - scheme for the base url ('http' or 'https')
  `isV2` - whether a V2 url should be constructed
Returns:
  url that looks like `https://app-node-1:8983/api` (V2) or `https://app-node-1:8983/solr` (V1)
Throws:
  `IllegalArgumentException` - if the provided node name is malformed

#### getNodeNameForBaseUrl

    public static String getNodeNameForBaseUrl​(String solrUrl)
                                        throws MalformedURLException,
                                               URISyntaxException

Construct base Solr URL to a Solr node name

Parameters:
  `solrUrl` - Given a base Solr URL string (e.g., 'https://app-node-1:8983/solr')
Returns:
  Node name that looks like `app-node-1:8983_solr`
Throws:
  `MalformedURLException` - if the provided URL string is malformed
  `URISyntaxException` - if the provided URL string could not be parsed as a URI reference.