【问题标题】:Spring's RestTemplate: complex object to query paramsSpring 的 RestTemplate:查询参数的复杂对象
【发布时间】:2019-03-07 20:54:30
【问题描述】:

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

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 并自动完成工作,或者我必须自己进行手动映射?

谢谢!

【问题讨论】:

    标签: spring spring-boot resttemplate


    【解决方案1】:

    是的!有一种方法可以传递完整的复杂对象来进行服务调用,然后确保它可以自动实现。 为此,您必须更改发送此 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,最好的参考是 spring resttemplate doc

    【讨论】:

    • 我正在寻找与 GET 操作一起使用的东西,但我认为它不存在,所以我将这个问题标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多