resttemlate
package com.xjj; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import org.apache.commons.beanutils.BeanUtils;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xjj.web.controller.LoginObj; import net.minidev.json.JSONObject; public class CMERestClient {
TestRestTemplate restTemplate = new TestRestTemplate(); public <T> T processRestJson(String url, String as, Class<T> t) { TestRestTemplate restTemplate = new TestRestTemplate();
HttpEntity<String> entity = getJSONHttpEntityObj(as);
T ss = restTemplate.postForObject(url, entity, t);
return ss;
} public <T> T processRestJsonObj(String url, T as, Class<T> t) { HttpEntity<T> entity = getJSONHttpEntityObj(as);
T ss = restTemplate.postForObject(url, as, t);
return ss;
} public <T> List<T> processRestJsonList(String url, String as, Class<T> t) throws Exception { TestRestTemplate restTemplate = new TestRestTemplate();
HttpEntity<String> entity = getJSONHttpEntity(as);
List<Map> mapList = restTemplate.postForObject(url, entity, List.class); return convert(mapList, t);
} public static <T> T mapToObject(Map map, Class<T> beanClass) throws Exception { T obj = beanClass.newInstance();
BeanUtils.populate(obj, map); return obj; } public <T> List<T> convert(List<Map> mapList, Class<T> c) throws Exception { ObjectMapper b = new ObjectMapper(); List<T> s = mapList.stream().map(p -> sss(c, p)).collect(Collectors.toList()); return s;
} private <T> T sss(Class<T> c, Map p) {
T obj = null;
try {
obj = c.newInstance();
BeanUtils.populate(obj, p);
return obj;
} catch (Exception e) {
e.printStackTrace();
}
return obj;
} public <T> List<T> processRestJsonExchange(String url, String as, ParameterizedTypeReference<List<T>> typeRef) { TestRestTemplate restTemplate = new TestRestTemplate();
HttpEntity<String> entity = getJSONHttpEntity(as); ResponseEntity<List<T>> responseEntity = restTemplate.exchange(url, HttpMethod.POST, entity, typeRef);
List<T> myModelClasses = responseEntity.getBody(); return myModelClasses;
} public JSONObject processRestJson2(String url, String as) { TestRestTemplate restTemplate = new TestRestTemplate();
HttpEntity<String> entity = getJSONHttpEntity(as);
JSONObject ss = restTemplate.postForObject(url, entity, JSONObject.class);
return ss;
} public String createJSONParm(Map<String, String> a) { ObjectMapper b = new ObjectMapper();
String as = null;
try {
as = b.writeValueAsString(a);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return as;
} public <T> String objToJSONString(T t) { ObjectMapper b = new ObjectMapper();
String as = null;
try {
as = b.writeValueAsString(t);
} catch (JsonProcessingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return as;
} public <T> HttpEntity<T> getJSONHttpEntity(T as) { HttpHeaders headers2 = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers2.setContentType(type);
headers2.add("Accept", MediaType.APPLICATION_JSON.toString()); HttpEntity<T> entity = new HttpEntity<T>(as, headers2);
return entity;
} public <T> HttpEntity<T> getJSONHttpEntityObj(T as) { HttpHeaders headers2 = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers2.setContentType(type);
headers2.add("Accept", MediaType.APPLICATION_JSON.toString()); HttpEntity<T> entity = new HttpEntity<T>(as, headers2);
return entity;
}
}
resttemlate的更多相关文章
- Spring cloud 之Ribbon(一)基本使用
简介 Spring cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它是基于Netflix的Riboon实现的.Ribbon是客户端负载均衡器,这有别语例如Nginx服务端负载 ...
- 微服务之springCloud-docker-feign(四)
简介 上一节,我们讨论了怎么通过,restTemlate调用cloud的生产者,实现起来还是比较复杂的,尤其是在消费复杂的Restful服务的时候,还需要进行一系列的转换,编解码等,使用Feign就完 ...
- 微服务之springCloud-docker-comsumer(三)
简介 上一节,我们讲了创建spring cloud生产者,并利用docker-compose部署到swarm集群中,这节我们讨论一下最restTemlate调用生产者服务 一.创建模块(micros ...
- SpringCloud-创建服务消费者-Ribbon方式(附代码下载)
场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
随机推荐
- Leetcode 两数之和 (散列表)
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...
- [USACO07OPEN]便宜的回文Cheapest Palindrome
字串S长M,由N个小写字母构成.欲通过增删字母将其变为回文串,增删特定字母花费不同,求最小花费. 题目描述见上 显然 这是一道区间DP 从两头DP,枚举长度啥的很套 ...
- 数据库关闭,shutdown三种语句。
1.shutdown normal 正常方式关闭数据库. 2.shutdown immediate 立即方式关闭数据库. 在SVRMGRL中执行shutdown immedia ...
- LinkedList浅析
LinkedList浅析 LinkedList是Collection下的一个list实现,就像ArrayList一样. 和ArrayList不同的是它是链表结构,而ArrayList是顺序结构.我们平 ...
- django-枚举类型扩展方法
原文地址:https://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.get_FOO_disp ...
- steam商店正式支持RMB直接结算
前两天看到新闻, 想不到这么快: http://tech.sina.com.cn/s/2015-10-26/doc-ifxizwsm2369244.shtml 今天登陆steam发现标价已经成了RMB ...
- Python实例之抓取HTML中的数据并保存为TXT
本实例实现了抓取捧腹网中存储于html中的笑话数据(非JSON数据) 通过浏览器相关工具发现捧腹网笑话页面的数据存储在HTML页面而非json数据中,因此可以直接使用soup.select()方法来抓 ...
- MySQL Hardware--CentOS 6修改CPU性能模式
cpufrequtils命令 ## 安装: yum install cpufrequtils ## 查看CPU信息: cpufreq-info -m 输出CPU信息为: analyzing CPU : ...
- Javascript 将字符串替换为特定的规律的字符串
Javascript 将字符串替换为特定的规律的字符串 这是测试过程,可以再简化一点. function spinalCase(str) { // "It's such a fine lin ...
- 结合数据结构来看看Java的String类
数据结构中定义字符串是由零个或多个字符组成的有限序列,有限,指出字符串的长度是一个有限的数值:所谓的序列,说明串的相邻字符之间具有前驱和后继的关系.字符串一般记为s="a1a2...an&q ...