Trying to build . I don't know much about it but I wrote below code from searching from google:
import java.net.MalformedURLException; import java.net.URI; import java.net.URL; public class MyUrlConstruct { public static void main(String a[]){ try { String protocol = "http"; String host = "IP"; int port = 4567; String path = "foldername/1234"; URL url = new URL (protocol, host, port, path); System.out.println(url.toString()+"?"); } catch (MalformedURLException ex) { ex.printStackTrace(); } } } I am able to build URL . I am stuck at query part. Please help me to move forward.
5 Answers
You can just pass raw spec
new URL(""); Or you can take something like org.apache.http.client.utils.URIBuilder and build it in safe manner with proper url encoding
URIBuilder builder = new URIBuilder(); builder.setScheme("http"); builder.setHost("IP"); builder.setPath("/foldername/1234"); builder.addParameter("abc", "xyz"); URL url = builder.build().toURL(); 2Use OkHttp
There is a very popular library named OkHttp which has been starred 20K times on GitHub. With this library, you can build the url like below:
import okhttp3.HttpUrl; URL url = new HttpUrl.Builder() .scheme("http") .host("example.com") .port(4567) .addPathSegments("foldername/1234") .addQueryParameter("abc", "xyz") .build().url(); Or you can simply parse an URL:
URL url = HttpUrl.parse("").url(); 3In general non-Java terms, a URL is a specialized type of URI. You can use the URI class (which is more modern than the venerable URL class, which has been around since Java 1.0) to create a URI more reliably, and you can convert it to a URL with the toURL method of URI:
String protocol = "http"; String host = "example.com"; int port = 4567; String path = "/foldername/1234"; String auth = null; String fragment = null; URI uri = new URI(protocol, auth, host, port, path, query, fragment); URL url = uri.toURL(); Note that the path needs to start with a slash.
If using Spring Framework:
UriComponentsBuilder.newInstance() .scheme(scheme) .host(host) .path(path) .build() .toUri() .toURL(); A new UriComponentsBuilder class helps to create UriComponents instances by providing fine-grained control over all aspects of preparing a URI including construction, expansion from template variables, and encoding.
If you happen to be using Spring already, I have found the org.springframework.web.util.UriComponentsBuilder to be quite nifty. Here is how you would use it in your case.
final URL myUrl = UriComponentsBuilder .fromHttpUrl("") .build() .toUri() .toURL();