How to Pass URL as Path Variable

qccaprospect :

I am trying to pass a URL as a path variable, but when I input the URL as a parameter and access the route, it returns an error. I want to be able to see the address after it passes into the route as a parameter.

@RequestMapping("/addAddress/{address}")
public String addAddress(@PathVariable("address") String address) {
    System.out.println("Address: "+address)
    return address;
}

For example, if I put into the URL:

localhost:8080/addAddress/http://samplewebsite.com

I should see

http://samplewebsite.com 

printed out in the back end.

buræquete :

You can do the following;

@RequestMapping("/addAddress/**")
public String addAddress(HttpServletRequest request) {
    String fullUrl = request.getRequestURL().toString();
    String url = fullUrl.split("/addAddress/")[1];
    System.out.println(url);
    return url;
}

with @PathVariable that is not doable due to the / char breaking the behaviour you are looking for, unless you encode/decode, but I feel like this is a simpler way to go for both user of the endpoint, and for the backend.

Also this will not fetch the request query part, e.g. ?input=user, to do that you can add this logic

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=147159&siteId=1