如何使用RestTemplate将POST请求发送到相对URL?

如何向应用程序本身发送POST请求?

如果我只发送一个相对的post请求:java.lang.IllegalArgumentException:URI不是绝对的.

@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);
    }
}

所以使用上面的例子,如何在url前加上绝对服务器url路径localhost:8080 / app?我必须动态地找到路径.

最佳答案
您可以像下面一样重写您的方法.

@RequestMapping("value = "/test", method = RequestMethod.GET)
public void test(HttpServletRequest request) {
    String url = request.getRequestURL().toString();
    String relativeUrl = url+"/posting"; 
    new RestTemplate().postForLocation(relativeUrl, null);
}

转载注明原文:如何使用RestTemplate将POST请求发送到相对URL? - 代码日志