Wie zum senden von POST-Anforderung an die relative URL mit RestTemplate?
Wie kann ich senden eine POST
Anforderung an die Anwendung selbst?
Wenn ich senden Sie einfach eine relative post-Anforderung: java.lang.IllegalArgumentException: URI is not absolute
.
@RestController
public class TestServlet {
@RequestMapping("value = "/test", method = RequestMethod.GET)
public void test() {
String relativeUrl = "/posting"; //TODO how to generate like "localhost:8080/app/posting"?
new RestTemplate().postForLocation(relativeUrl, null);
}
}
Also mit dem Beispiel oben, wie kann ich das Präfix der url, mit dem absolute server-url-Pfad localhost:8080/app
? Ich finde den Pfad dynamisch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie die Methode wie unten.
Fand eine nette Art und Weise, dass grundsätzlich automatisiert die Aufgabe mit
ServletUriComponentsBuilder
:application.properties
Werte. Dies kann erreicht werden, indem die@RefreshScope
auf Klassen enthalten@Value
Eigenschaften. Leider spring erfordert einePOST
Anfrage<app-path>/refresh
. Und unterstützt nicht einfachGET
browser-Anfrage auf diese url. Also ich hab da eine einfache GET-und intern versenden der POST.RefreshEndpoint.refresh()
.Wenn Sie möchten, aktualisieren Sie die Anwendung.Eigenschaften sollten Sie AutoWire die RefreshScope in Sie-controller und rufen Sie explizit, es macht es viel einfacher zu sehen, was Los ist.
Hier ist ein Beispiel
RefreshEndpoint
- und call -.refresh()
, denn dies ist genau das, was die POST-Anforderung enthält.