Get Request URL in Spring Boot RestController with Java - Quick Guide

When working with Spring Boot RestController in Java, you may encounter the need to retrieve the URL of the incoming HTTP request. This can be useful in various scenarios, such as logging or generating dynamic responses based on the request URL.

To get the request URL in a RestController method, you can use the HttpServletRequest object, which is automatically injected by Spring. Simply add a parameter of type HttpServletRequest to your method signature, and call the getRequestURL() method on it:


@GetMapping("/example")
public String handleExampleRequest(HttpServletRequest request) {
    StringBuilder url = request.getRequestURL();
    // do something with the URL
    return "response";
}

The getRequestURL() method returns a StringBuilder object that contains the full request URL, including the scheme, host, port (if specified), and path. You can manipulate this object as needed to extract or modify specific components of the URL.

Alternatively, you can also use the ServletUriComponentsBuilder class to build a URL based on the current request. This can be useful when generating links or redirects in your application:


@GetMapping("/example")
public ResponseEntity<Void> handleExampleRequest(HttpServletRequest request) {
    URI location = ServletUriComponentsBuilder.fromRequestUri(request)
        .path("/new-resource")
        .build()
        .toUri();
    return ResponseEntity.created(location).build();
}

In this example, the fromRequestUri() method creates a builder object based on the current request URL, which is then modified with the path() method to create a new URL for a hypothetical "new-resource" endpoint.

Overall, retrieving the request URL in a Spring Boot RestController is a straightforward process that can be accomplished with the HttpServletRequest object or the ServletUriComponentsBuilder class. With this quick guide, you should now have a better understanding of how to get the request URL in your own RestController methods.

Click to rate this post!
[Total: 0 Average: 0]

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Go up

Below we inform you of the use we make of the data we collect while browsing our pages. You can change your preferences at any time by accessing the link to the Privacy Area that you will find at the bottom of our main page. More Information