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 文档
我有一个像这样的复杂对象:
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 文档