URI resolve(String) in Java

resolve(String): This method is available in the java.net.URI class of Java.

Syntax:

URI java.net.URI.resolve(String str)

This method takes one argument. This method constructs a new URI by parsing the given string and then resolving it against this URI.

Parameters: One parameter is required for this method.

str: The string to be parsed into a URI.

Returns: The resulting URI.

Throws:

1. NullPointerException - If str is null.

2. IllegalArgumentException - If the given string violates RFC 2396

Approach 1: When no exception

Java

package com.URI;

import java.net.URI;
import java.net.URISyntaxException;

public class URIresolve {
    public static void main(String[] args) throws URISyntaxException {
        String scheme = "https", userInfo = "userInfo", host = "localhost", path = "/hello", query = "param=value",
                fragment = "fragment";
        int port = 8080;

        URI uri = new URI(scheme, userInfo, host, port, path, query, fragment);

        String str = "str";

        System.out.println(uri.resolve(str));
    }
}

Output:

https://userInfo@localhost:8080/str


Approach 2: NullPointerException 

Java

package com.URI;

import java.net.URI;
import java.net.URISyntaxException;

public class URIresolve {
    public static void main(String[] args) throws URISyntaxException {
        String scheme = "https", userInfo = "userInfo", host = "localhost", path = "/hello", query = "param=value",
                fragment = "fragment";
        int port = 8080;

        URI uri = new URI(scheme, userInfo, host, port, path, query, fragment);

        String str = null;

        System.out.println(uri.resolve(str));
    }
}

Output:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "this.input" is null at java.base/java.net.URI$Parser.parse(URI.java:3154) at java.base/java.net.URI.<init>(URI.java:623) at java.base/java.net.URI.create(URI.java:904) at java.base/java.net.URI.resolve(URI.java:1089) at com.URI.URIresolve.main(URIresolve.java:16)


Approach 3: IllegalArgumentException

Java

package com.URI;

import java.net.URI;
import java.net.URISyntaxException;

public class URIresolve {
    public static void main(String[] args) throws URISyntaxException {
        String scheme = "https", userInfo = "userInfo", host = "localhost", path = "/hello", query = "param=value",
                fragment = "fragment";
        int port = 8080;

        URI uri = new URI(scheme, userInfo, host, port, path, query, fragment);

        String str = "\\str";

        System.out.println(uri.resolve(str));
    }
}

Output:

Exception in thread "main" java.lang.IllegalArgumentException: Illegal character in path at index 0: \str at java.base/java.net.URI.create(URI.java:906) at java.base/java.net.URI.resolve(URI.java:1089) at com.URI.URIresolve.main(URIresolve.java:16) Caused by: java.net.URISyntaxException: Illegal character in path at index 0: \str at java.base/java.net.URI$Parser.fail(URI.java:2963) at java.base/java.net.URI$Parser.checkChars(URI.java:3134) at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3216) at java.base/java.net.URI$Parser.parse(URI.java:3175) at java.base/java.net.URI.<init>(URI.java:623) at java.base/java.net.URI.create(URI.java:904) ... 2 more


Some other methods of URI class

URI(String): This method constructs a URI by parsing the given string.

URI(String, String, String): This method constructs a URI from the given components. A component may be left undefined by passing null.

URI(String, String, String, String): This method constructs a hierarchical URI from the given components.

URI(String, String, String, String, String): This method constructs a hierarchical URI from the given components. If a scheme is given then the path, if also given, must either be empty or begin with a slash character ('/'). Otherwise, a component of the new URI may be left undefined by passing null for the corresponding parameter.

URI(String, String, String, int, String, String, String): This method constructs a hierarchical URI from the given components. If a scheme is given then the path, if also given, must either be empty or begin with a slash character ('/'). Otherwise, a component of the new URI may be left undefined by passing null for the corresponding parameter or, in the case of the port parameter, bypassing -1.

compareTo(URI): This method compares this URI to another object, which must be a URI.

URI.create(String): This method creates a URI by parsing the given string.

equals(Object): This method tests this URI for equality with another object.

getAuthority(): This method returns the decoded authority component of this URI.

getFragment(): This method returns the decoded fragment component of this URI.

getHost(): This method returns the host component of this URI.

getPath(): This method returns the decoded path component of this URI.

getPort(): This method returns the port number of this URI.

getQuery(): This method returns the decoded query component of this URI.

getRawAuthority(): This method returns the raw authority component of this URI.

getRawFragment(): This method returns the raw fragment component of this URI.

getRawPath(): This method returns the raw path component of this URI.

getRawQuery(): This method returns the raw query component of this URI.

getRawSchemeSpecificPart(): This method returns the raw scheme-specific part of this URI. The scheme-specific part is never undefined, though it may be empty.

getRawUserInfo(): This method returns the raw user-information component of this URI.

getScheme(): This method returns the scheme component of this URI.

hashCode(): This method returns a hash code value for this URI.

isAbsolute(): This method tells whether or not this URI is absolute.

isOpaque(): This method tells whether or not this URI is opaque.

normalize(): This method normalizes this URI's path.

parseServerAuthority(): This method attempts to parse this URI's authority component if defined, into user information, host, and port components.

relativize(URI):  This method relativizes the given URI against this URI.

resolve(String): This method constructs a new URI by parsing the given string and then resolving it against this URI.

resolve(URI): This method resolves the given URI against this URI

toASCIIString(): This method returns the content of this URI as a US-ASCII string.

toString(): This method returns the content of this URI as a string.

toURL(): This method constructs a URL from this URI.

No comments:

Post a Comment