ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RestTemplate

2021-09-16 23:34:35  阅读:192  来源: 互联网

标签:String RestTemplate headers params responseEntity put new


   方式一:

Map<String, Object> params = new HashMap<>();
params.put("appId", "xxx");
params.put("appSecret", "yyyyyyyyyy");
String url = "http://test.com/sso/open/token?appId={appId}&appSecret={appSecret}";
ResponseEntity<SsoResult<String>> responseEntity = restTemplate().exchange(url, HttpMethod.GET, null, parameterizedTypeReference, params);

方式二:
String url = "http://test.com/sso/open/token";
Map<String, Object> params = new HashMap<>();
params.put("appId", "xxx");
params.put("appSecret", "yyyyyyy");
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
params.entrySet().stream().forEach(o -> builder.queryParam(o.getKey(),o.getValue()));
String url2 = builder.build().encode().toString();
ParameterizedTypeReference parameterizedTypeReference = new ParameterizedTypeReference<SsoResult<String>>() {};
ResponseEntity<SsoResult<String>> responseEntity = restTemplate().exchange(url2, HttpMethod.GET, null, parameterizedTypeReference);
SsoResult<String> ssoResult = responseEntity.getBody();

Headers:
private HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.add("content-type", "application/json");
AccessToken accessToken = AccessToken.accessToken;
headers.add("authorization", accessToken.getAccess_token());
return headers;
}

ObjectMapper:

先获取为String类型,再用ObjectMapper转换为对象,可以用于调试时使用。
ResponseEntity<String> responseEntity = restTemplate.exchange(usersUrl, HttpMethod.GET, requestEntity, String.class, params);
String body = responseEntity.getBody();
IdaasResponse<List<UserInfo>> response = objectMapper.readValue(body, new TypeReference<IdaasResponse<List<UserInfo>>>() {});
return response.getData();

完整代码如下:
String usersUrl = "${idaas.url}/api/users?limit={limit}&skip={skip}";
HttpHeaders headers = getHeaders(); // 见上面的getHeaders()
Map<String, Object> params = new HashMap<>();
params.put("limit", limit);
params.put("skip", skip);
HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
ResponseEntity<String> responseEntity = restTemplate.exchange(usersUrl, HttpMethod.GET, requestEntity, String.class, params);
String body = responseEntity.getBody();
IdaasResponse<List<UserInfo>> response = objectMapper.readValue(body, new TypeReference<IdaasResponse<List<UserInfo>>>() {});
return response.getData();


标签:String,RestTemplate,headers,params,responseEntity,put,new
来源: https://www.cnblogs.com/modestlin/p/15302770.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有