So erhalten Sie eine Anforderungs-URL in Spring Boot RestController
Lesezeit: 2 Minuten
NRA
Ich versuche, die Anforderungs-URL in einem RestController abzurufen. Der RestController hat mehrere Methoden, die mit kommentiert sind @RequestMapping für verschiedene URIs und ich frage mich, wie ich die absolute URL aus der bekommen kann @RequestMapping Anmerkungen.
@RestController
@RequestMapping(value = "/my/absolute/url/{urlid}/tests"
public class Test {
@ResponseBody
@RequestMapping(value "https://stackoverflow.com/",produces = "application/json")
public String getURLValue(){
//get URL value here which should be in this case, for instance if urlid
//is 1 in request then "/my/absolute/url/1/tests"
String test = getURL ?
return test;
}
}
Deepak
Sie können versuchen, ein zusätzliches Argument vom Typ hinzuzufügen HttpServletRequest zum getUrlValue() Methode:
@RequestMapping(value ="https://stackoverflow.com/",produces = "application/json")
public String getURLValue(HttpServletRequest request){
String test = request.getRequestURI();
return test;
}
Danke für Antwort und Beispiel. Ich kenne diese Methode, habe mich aber gefragt, ob es eine Möglichkeit gibt, URL-Informationen mithilfe von Eigenschaften auf Controller-Ebene abzurufen, aber es scheint, als wäre dies der richtige Weg.
– NRB
12. Juni 2016 um 20:29 Uhr
Woher wird HttpServletRequest importiert?
– Andrew Farell
30. September 2016 um 14:04 Uhr
javax.servlet.http.HttpServletRequest
– Deepak
30. September 2016 um 14:22 Uhr
Dies beinhaltet keine Parameter
– TheRealChx101
11. September 2021 um 1:40 Uhr
Wenn Sie keine Abhängigkeit von Springs HATEOAS oder javax.* Namensraum, verwenden ServletUriComponentsBuilder um den URI der aktuellen Anfrage zu erhalten:
Diese Antwort funktioniert einwandfrei, aber ist es möglich, auf eine HATEAOS-Abhängigkeit zu verzichten? Obwohl alle Methoden, die ich ausprobiert habe, auf die eine oder andere Weise von der Anforderung abhängen, habe ich das in meinem Szenario nicht.
– SeverityOne
25. Juni 2020 um 12:55 Uhr
Wohin führt das? Wie?
– TheRealChx101
11. September 2021 um 1:40 Uhr
Fügen Sie einen Parameter vom Typ hinzu UriComponentsBuilder zu Ihrer Controller-Methode. Spring gibt Ihnen eine Instanz, die mit dem URI für die aktuelle Anfrage vorkonfiguriert ist, und Sie können sie dann anpassen (z. B. durch Verwendung von MvcUriComponentsBuilder.relativeTo um auf einen anderen Controller mit demselben Präfix zu zeigen).
13814500cookie-checkSo erhalten Sie eine Anforderungs-URL in Spring Boot RestControlleryes