RestTemplate异常no suitable HttpMessageConverter found for r
发布时间:2020-12-15 01:11:20 所属栏目:大数据 来源:网络整理
导读:?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.SimpleClientHttpRequestFactor
?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(); } } ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |