您的位置:首页 > 编程语言 > Java开发

记录org.springframework.web.client.RestTemplate的用法

2016-07-25 11:56 621 查看
一,响应端url是可自定义的

1.get

RestTemplate rest = new RestTemplate();
String url = "/testGet/{id}";//响应端的url要一致  /testGet/{id}
rest.getForObject(url, String.class);


2.post 有几种不细说

RestTemplate rest = new RestTemplate();
String url = "/testPost/{id}";//响应端的url要一致  /testGet/{id}
Object requestObject = new Object();//可以是自定义的bean,服务端要用 @requestBody注解接参数
rest.postForEntity(url, requestObject, String.class);


二,响应端url是不能自定义或第三方
1.get 带sessionId

RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("Cookie", sessionId);//JSESSIONID=0C5BF68C4C817D7D68BE840BEA436377
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(null, headers);
ResponseEntity<String> response = rest.exchange( "url", HttpMethod.GET, requestEntity , String.class );


2.post 模拟form提交文本,参数要用MultiValueMap不能用map

RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.set("Cookie", sessionId);//JSESSIONID=0C5BF68C4C817D7D68BE840BEA436377
MultiValueMap<String, String> param = new LinkedMultiValueMap<String, String>();
param.add("name", "testName");
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(param, headers);
String url = Constants.DISCONF_WEB+"api/app";
ResponseEntity<String> response = rest.postForEntity(url, requestEntity, String.class);


3.put,delete 和(二,1)基本相实,修改下 HttpMethod.PUT 或 HttpMethod.DELETE

4.post 提交文件待续...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RestTemplate