如何使用Spring的RestTemplate发布JSON数据?

时间:2011-09-08 13:32:40

标签: json resttemplate

根据我找到的例子,我不太明白如何解决我的特殊情况。我试图将JSON字符串发布到URL以创建新对象。 REST服务的响应是新创建的资源的URI。 REST调用假设如下:

http://www.some.url.com/REST/create?data={ "param1":"value1", "param2":"value2", ... }

那么根据上面的例子,我的参数是什么?是这样的吗?

RestTemplate restTemplate = new RestTemplate();
URI uri = restTemplate.postForLocation("http://www.some.url.com/REST/create?data=", "{ "param1":"value1", "param2":"value2", ... }");

我目前拥有Map中的所有param / value对,可以使用Jackson轻松转换为JSON。在这种情况下,我可以执行以下操作:

Map<String, String> record = new HashMap<String, String>();
record.put("param1","value1");
record.put("param2","value2");

URI uri = restTemplate.postForLocation("http://www.some.url.com/REST/create?data=", record);

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这个简单的方法

public static String callService(String url, Map<String, String> data) throws Exception 
{RestTemplate rest = new RestTemplate();
ResponseEntity<String> response= rest.postForEntity(url, data, String.class);
            System.out.println(response.getBody()); 
}