spring-mvc - 如何使用 Spring 的 REST 模板传递自定义对象

标签 spring-mvc spring-3 rest-client resttemplate

我需要使用 RESTTemplate 将自定义对象传递给我的 REST 服务。

RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> requestMap = new LinkedMultiValueMap<String, Object>();
...

requestMap.add("file1", new FileSystemResource(..);
requestMap.add("Content-Type","text/html");
requestMap.add("accept", "text/html");
requestMap.add("myobject",new CustomObject()); // This is not working
System.out.println("Before Posting Request........");
restTemplate.postForLocation(url, requestMap);//Posting the data.
System.out.println("Request has been executed........");

我无法将我的自定义对象添加到 MultiValueMap。请求生成失败。

有人可以帮我找到办法吗?我可以简单地传递一个字符串对象而没有问题。用户定义的对象会产生问题。

感谢任何帮助!!!

最佳答案

You can do it fairly simply with Jackson .

这是我为一个简单 POJO 的 Post 所写的内容。

@XmlRootElement(name="newobject")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class NewObject{
    private String stuff;

    public String getStuff(){
        return this.stuff;
    }

    public void setStuff(String stuff){
        this.stuff = stuff;
    }
}
....
//make the object
NewObject obj = new NewObject();
obj.setStuff("stuff");

//set your headers
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

//set your entity to send
HttpEntity entity = new HttpEntity(obj,headers);

// send it!
ResponseEntity<String> out = restTemplate.exchange("url", HttpMethod.POST, entity
    , String.class);

上面的链接应该会告诉您如何在需要时进行设置。它是一个非常好的教程。

关于spring-mvc - 如何使用 Spring 的 REST 模板传递自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11013758/

相关文章:

java - Spring 4 - addResourceHandlers 不解析静态资源

java - 使用 Spring Security 的 IP 过滤器

spring - 将 ResponseEntity<T> 和 @RestController 用于 Spring RESTful 应用程序时

java - 需要帮助使用 Java 高级 REST 客户端批量 API 创建动态 Elasticsearch 索引

api - NestJS REST Controller 未从 PATCH 请求中获取 @Body(VSCode REST 客户端)

java - 为什么使用 spring MVC 进行对象到 json 转换在这种情况下不起作用?

java - 本地服务器和 tomcat 之间的 url 上下文更改

jsp - Spring 3-在JSP中访问Model值

java - Spring MVC 中的 WebRequest 和 HttpServletRequest

ruby - 用户名中带有#的RestClient基本身份验证