Spring 的 RestTemplate:要查询参数的复杂对象

Spring's RestTemplate: complex object to query params

我有一个像这样的复杂对象:

public class ComplexObject {

    private String a;
    private String b; 
    ...
    private String z;

    //getters and setters
}

我想调用一个接收所有复杂对象字段的网络服务:http://localhost:8080/api/some_service?a=something&b=something&...&z=something

有没有办法将 ComplexObject 传递给 RestTemplate 并自动完成工作,或者我必须自己进行手动映射?

谢谢!

是的!有一种方法可以传递完整的复杂对象来进行服务调用,然后确保它可以自动实现。 为此,您必须改变发送此 complexObject 的方式,并且必须使用 HTTP POST(强烈推荐),如:

public HttpStatus send() 
{
ComplexObject complexObj = getYourFilledObject();


ResponseEntity<HttpStatus> response = restTemplate.postForEntity(ROOT_URI, complexObj, HttpStatus.class);

return response;

}

如果没有并且 GET 是唯一的选择,那么很遗憾,您必须按原样发送。因为归根结底,要么你使用 rest 模板的函数来获取参数映射,要么你用参数创建你自己的 URI,它是相同的 HTTP GET,你必须以编程方式实现。

有关示例和说明,您可以访问 here and best reference will be spring resttemplate 文档