RestTemplate异常no suitable HttpMessageConverter found for request type [java.lang.Integer]
GET方式,参数必须放在URL后面,http://xxx/list?name={name}&age={age}
package com.chelizi.xiruo.xframework.util; import net.sf.json.JSONObject;
import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
import org.springframework.web.client.DefaultResponseErrorHandler;
import org.springframework.web.client.RestTemplate; import java.util.Arrays;
import java.util.Map;
import java.util.Set; /**
* RestTemplate请求工具类
* Created by huangbaidong
* 2017/10/22.
*/
public class RestTemplateRequestUtil { /**
* GET请求
* @param url
* @param params
* @param clazz
* @param <T>
* @return
*/
public static <T> T getRequest(String url, Map<String, Object> params, Class<T> clazz) {
return request(url, params, clazz, HttpMethod.GET);
} /**
* POST请求
* @param url
* @param params
* @param clazz
* @param <T>
* @return
*/
public static <T> T postRequest(String url, Map<String, Object> params, Class<T> clazz) {
return request(url, params, clazz, HttpMethod.POST);
} /**
* restTemplate请求,
* 默认设置了连接超时,请求超时时间
* @param url 请求地址
* @param params 请求参数
* @param clazz 返回结果类型
* @param <T>
* @return
*/
public static <T> T request(String url, Map<String, Object> params, Class<T> clazz, HttpMethod method) {
return request(url, params, clazz, method,30000, 20000);
} /**
* restTemplate请求
* @param url 请求地址
* @param params 请求参数
* @param clazz 返回结果类型
* @param readTimeout 请求响应超时时间
* @param connectTimeout 连接超时时间
* @param <T>
* @return
*/
public static <T> T request(String url, Map<String, Object> params, Class<T> clazz,
HttpMethod method,int readTimeout, int connectTimeout) { RestTemplate restTemplate = new RestTemplate(); //设置连接参数
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setReadTimeout(readTimeout);
requestFactory.setConnectTimeout(connectTimeout);
restTemplate.setRequestFactory(requestFactory);
restTemplate.setErrorHandler(new DefaultResponseErrorHandler()); //拿到access_toeken
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails(); //请求头
HttpHeaders headers = new 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, method, requestEntity, clazz);
} else {
HttpEntity requestEntity = new HttpEntity(null, headers);
responseEntity = restTemplate.exchange(appendParams(url, params.keySet()), method, requestEntity, clazz, params);
}
return responseEntity.getBody();
} /**
* 将参数追加到URL后边
* @param url
* @param keys
* @return
* @author: huangbaidong
* @Description: TODO
* @return: String
*/
private static String appendParams(String url, Set<?> keys) {
StringBuilder sb = new StringBuilder(url);
if(url.contains("?")) {
sb.append("&");
} else {
sb.append("?");
}
for (Object key : keys) {
sb.append(key).append("=").append("{").append(key).append("}").append("&");
}
return sb.deleteCharAt(sb.length() - 1).toString();
} }
RestTemplate异常no suitable HttpMessageConverter found for request type [java.lang.Integer]的更多相关文章
- no suitable HttpMessageConverter found for request type [java.lang.Integer]
今天在使用Spring Template的时候遇到了这个异常: no suitable HttpMessageConverter found for request type [java.lang.I ...
- Validation异常:No validator could be found for constraint '.....' validating type 'java.lang.Integer'.
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'java ...
- Java 异常 Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date'
查询时发送给服务器的日期的字符串格式:yyyy-MM-dd HH:mm:ss 服务器接收到日期的字符串之后,向 MySQL 数据库发起查询时,因为没有指定日期时间格式,导致字符串数据不能正确地转换为日 ...
- no suitable HttpMessageConverter found for response type
在使用 RestTemplate 或者 Spring Cloud 的时候,经常会出现这个错误. 基本上出现的场景都是,我们要json,结果来了个 text/html. 两个原因: 第一个就是:服务器返 ...
- 关于jstl中碰到的Property 'username' not found on type java.lang.String异常
在jstl的forEach循环的时候总是有异常,刚开始以为是把类的属性名打错了,因为显示的是Property not found,但就算从类文件里面复制属性名过来依然显示的是Property not ...
- Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException
在写一个struts2+hibernate整合的小例子时,启动Tomcat服务器,报了一个: 严重: Exception starting filter struts2java.lang.ClassN ...
- Java EE之Struts2异常[No mapping found for dependency [type=java.lang.String, name='actionPackages'#java.lang.RuntimeException]【摘抄】
本博文摘自:http://www.blogjava.net/nkjava/archive/2009/03/29/262705.html 出现这个问题,可能是添加了struts2-codebehind包 ...
- MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer
mysql> select end) as '<60', end) as '60~69', end) as '70~79', end) as '80~89', end) as '>= ...
- 【java异常】Unexpected error occurred in scheduled task. java.lang.StackOverflowError: null
可能是栈溢出(StackOverFlow) 背景:我用定时器new东西 原因:频率太快了好像!
随机推荐
- GetLastError结果列表
程序执行出现错误,使用GetLastError可以初步得到错误的大致原因,方便程序员来分析,错误码对应含义总结如下,方便查看! MSDN System Error Codes: https://doc ...
- [hadoop] hdfs 格式化错误 java.net.UnknownHostException
执行 hdfs namenode -format 抛出错误 主机名称异常,查看主机信息 原来 通过 bogon 无法找到主机 ,在host 中也没有对应的映射信息 修改后即可 再次执行 hdfs na ...
- 怎样自己定义注解Annotation,并利用反射进行解析
Java注解可以提供代码的相关信息,同一时候对于所注解的代码结构又没有直接影响.在这篇教程中,我们将学习Java注解,怎样编写自己定义注解.注解的使用,以及怎样使用反射解析注解. 注解是Java 1. ...
- 8 -- 深入使用Spring -- 3...1 Resource实现类ServletContextResource
8.3.1 Resource实现类------ServletContextResource:访问相对于ServletContext路径下的资源的实现类. 4.访问应用相关资源 Spring提供了Ser ...
- Go之继承的实现
go的继承是使用匿名字段来实现的 package util //----------------Person---------------- type Person struct { Name str ...
- mongodb常用操作命令(待续)
1. 开启mongodb命令 >mongo 默认链接到test数据库 2. 显示所有数据库>show dbs 3.切换数据库>use 数据库名 4.查找数据库里某张表的所有成员> ...
- UITextField in a UITableViewCell
http://stackoverflow.com/questions/409259/having-a-uitextfield-in-a-uitableviewcell http://stackover ...
- 【代码审计】iZhanCMS_v2.1 前台GoodsController.php页面存在SQL注入漏洞分析
0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...
- Linux应急响应(二):捕捉短连接
0x00 前言 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一 ...
- sqlite3常用指令
一.建立数据库 sqlite3.exe test.db 二.双击sqlite-3_6_16目录下的程序sqlite3.exe,即可运行 三.退出 .exit 或者 .quit 四.SQLite支持如下 ...