需要有关身体参数的RestTemplate Post Request的帮助吗?

时间:2012-08-30 17:55:17

标签: spring resttemplate

我有一个休息api url,并通过Rest Client(restclient-ui-2.4-jar-with-dependencies)提交了与body(用户名,密码,其他参数)相同的POST请求,并且它没有任何工作的问题。

例如:

网址:https://test.com/cgi-bin/testing/api 正文:用户名= testuser&密码= pass123& id = 13002& name = raju

当我使用Spring RestTemplate postForObject(url,varmap,Employee.class)方法时,同样不能正常工作。

有人可以帮我一个简单的例子,其中请求是一个URL,带有body参数,响应是XML,它是用类映射的吗?

示例代码:

  MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
  map.add("username", "test");
  map.add("password", "test123");
  map.add("id", "1234");
  MarshallingHttpMessageConverter mc = new MarshallingHttpMessageConverter();
  mc.setMarshaller(new Jaxb2Marshaller());
  mc.setUnmarshaller(new Jaxb2Marshaller());
  list.add(marshallingHttpMessageConverter);
  emediateRestTemplate.setMessageConverters(list);
  Employee employee = (Employee) restTemplate.postForObject(url, map, Employee.class);

提前致谢, 卡锡尔

1 个答案:

答案 0 :(得分:14)

以上转换器Ex:“MarshallingHttpMessageConverter”不是必需的。

MultiValueMap<String, String> parametersMap = new LinkedMultiValueMap<String, String>();
parametersMap.add("username", "test");
parametersMap.add("password", "test123");
parametersMap.add("id", "1234");

对于帖子:

restTemplate.postForObject(url, parametersMap, Employee.class);

url is:String - rest api URL parametersMap - MultiValueMap Employee - 需要从JSON响应转换的对象

获取:

restTemplate.getForObject(url,  class object, variablesMap);

url is:String - rest api URL variablesMap - 地图 class object - 需要从JSON响应转换的对象

相关问题