GET方式,参数必须放在URL后面,http://xxx/list?name={name}&age={age}
package com.chelizi.xiruo.xframework.util; import net.sf.json.JSONObject; import org.springframework.http.*; org.springframework.http.client.SimpleClientHttpRequestFactory; org.springframework.security.core.context.SecurityContextHolder; org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails; org.springframework.web.client.DefaultResponseErrorHandler; org.springframework.web.client.RestTemplate; java.util.Arrays; java.util.Map; java.util.Set; /** * RestTemplate请求工具类 * Created by huangbaidong * 2017/10/22. */ public class RestTemplateRequestUtil { * GET请求 * @param url * params * clazz * <T> * @return */ static <T> T getRequest(String url,Map<String,Object> params,Class<T> clazz) { return request(url,params,clazz,HttpMethod.GET); } * POST请求 * static <T> T postRequest(String url,HttpMethod.POST); } * restTemplate请求,* 默认设置了连接超时,请求超时时间 * url 请求地址 * params 请求参数 * clazz 返回结果类型 * static <T> T request(String url,1)"> clazz,HttpMethod method) { return request(url,method,30000,20000); } * restTemplate请求 * readTimeout 请求响应超时时间 * connectTimeout 连接超时时间 * int readTimeout,int connectTimeout) { RestTemplate restTemplate = new RestTemplate(); //设置连接参数 SimpleClientHttpRequestFactory requestFactory = SimpleClientHttpRequestFactory(); requestFactory.setReadTimeout(readTimeout); requestFactory.setConnectTimeout(connectTimeout); restTemplate.setRequestFactory(requestFactory); restTemplate.setErrorHandler( DefaultResponseErrorHandler()); 拿到access_toeken OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails(); 请求头 HttpHeaders headers = HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); headers.add("Authorization","bearer "+details.getTokenValue()); 发起请求 ResponseEntity<T> responseEntity = null; if(HttpMethod.POST.equals(method)) { JSONObject jsonParams = JSONObject.fromObject(params); httpentity<JSONObject> requestEntity = new httpentity<JSONObject>(jsonParams,headers); responseEntity = restTemplate.exchange(url,requestEntity,clazz); } else { httpentity requestEntity = new httpentity(,1)"> restTemplate.exchange(appendParams(url,params.keySet()),params); } responseEntity.getBody(); } * 将参数追加到URL后边 * keys * @return * @author: huangbaidong * @Description: Todo * : String private static String appendParams(String url,Set<?> keys) { StringBuilder sb = StringBuilder(url); if(url.contains("?")) { sb.append("&"); } { sb.append("?"); } for (Object key : keys) { sb.append(key).append("=").append("{").append(key).append("}").append("&"return sb.deleteCharat(sb.length() - 1).toString(); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。