diff --git a/mycateye-agent/src/main/java/io/mycat/eye/agent/controller/ZkController.java b/mycateye-agent/src/main/java/io/mycat/eye/agent/controller/ZkController.java index 10c1d4feaea0a82cce166ab6ff311d461ef4f807..5928708f1c690470d7bf98c9c72909ce7100fabf 100644 --- a/mycateye-agent/src/main/java/io/mycat/eye/agent/controller/ZkController.java +++ b/mycateye-agent/src/main/java/io/mycat/eye/agent/controller/ZkController.java @@ -12,7 +12,7 @@ import java.util.List; import java.util.Optional; /** - * cjw + * cjw qq:294712221 */ @RestController @RequestMapping("/zk") diff --git a/mycateye-agent/src/main/java/io/mycat/eye/agent/service/zkConfig/ZkConfigService.java b/mycateye-agent/src/main/java/io/mycat/eye/agent/service/zkConfig/ZkConfigService.java index 7f3eda164c64bcd9ab0d1961e79bd56596fa2e6c..e06c9daf1f0b9b238f1a3a4a612e7be73d63fbc9 100644 --- a/mycateye-agent/src/main/java/io/mycat/eye/agent/service/zkConfig/ZkConfigService.java +++ b/mycateye-agent/src/main/java/io/mycat/eye/agent/service/zkConfig/ZkConfigService.java @@ -10,6 +10,9 @@ import java.util.Optional; import java.util.function.Predicate; import java.util.stream.Collectors; +/** + * cjw qq:294712221 + */ public class ZkConfigService { String path; String serviceName; diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/controller/MycatZkController.java b/mycateye-web/src/main/java/io/mycat/eye/web/controller/MycatZkController.java new file mode 100644 index 0000000000000000000000000000000000000000..ad595508254cf491f56d82d3a26767d315365d9d --- /dev/null +++ b/mycateye-web/src/main/java/io/mycat/eye/web/controller/MycatZkController.java @@ -0,0 +1,252 @@ +package io.mycat.eye.web.controller; + +import com.alibaba.fastjson.JSON; +import io.mycat.eye.web.bean.Constant; +import io.mycat.eye.web.dto.RestResponse; +import io.mycat.eye.web.util.AgentUrlUtil; +import io.mycat.eye.web.util.RestTemplateUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * cjw qq:294712221 + */ +@RestController +@RequestMapping("/mycat/zk") +public class MycatZkController { + Logger logger = LoggerFactory.getLogger(MycatZkController.class); + + @Autowired + RestTemplateUtils restTemplateUtils; + @Autowired + AgentUrlUtil agentUrlUtil; + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/cluster/all + * + * @param cluster + * @return + * @throws Exception + */ + @RequestMapping(value = "/{cluster}/server/cluster/all", method = {RequestMethod.GET}) + public RestResponse getClusterAll(@PathVariable String cluster) throws Exception { + String response = restTemplateUtils.getWithOneParam(agentUrlUtil.getZkClusterAll(), "cluster", cluster); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/cluster/mycat_fz_01 + * + * @param cluster + * @param clusterName + * @return + * @throws Exception + */ + @RequestMapping(value = "/{cluster}/server/cluster/{clusterName}", method = {RequestMethod.GET}) + public RestResponse getCluster(@PathVariable String cluster, @PathVariable String clusterName) throws Exception { + String response = restTemplateUtils.getWithTwoParam(agentUrlUtil.getZkCluster(), "cluster", cluster, "clusterName", clusterName); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/cluster/mycat_fz_01 + * { + * "property": [{ + * "value": "1", + * "name": "useSqlStat" + * }, { + * "value": "0", + * "name": "useGlobleTableCheck" + * }, { + * "value": "druidparser", + * "name": "defaultSqlParser" + * }, { + * "value": "2", + * "name": "sequnceHandlerType" + * }, { + * "value": "0", + * "name": "processorBufferPoolType" + * }, { + * "value": "0", + * "name": "handleDistributedTransactions" + * }, { + * "value": "1", + * "name": "useOffHeapForMerge" + * }, { + * "value": "1m", + * "name": "memoryPageSize" + * }, { + * "value": "1k", + * "name": "spillsFileBufferSize" + * }, { + * "value": "0", + * "name": "useStreamOutput" + * }, { + * "value": "389m", + * "name": "systemReserveMemorySize" + * }] + * } + * + * @param cluster + * @param body + * @param clusterName + * @return + */ + @RequestMapping(value = "/{cluster}/server/cluster/{clusterName}", method = {RequestMethod.POST}) + public RestResponse updateCluster(@PathVariable String cluster, @RequestBody String body, @PathVariable String clusterName) { + String response = restTemplateUtils.postBodyWithTwoUriParams(agentUrlUtil.updateZkCluster(), "cluster", cluster, "clusterName", clusterName, body); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/default + * + * @param cluster + * @return + */ + @RequestMapping(value = "/{cluster}/server/default", method = {RequestMethod.GET}) + public RestResponse getDefault(@PathVariable String cluster) { + String response = restTemplateUtils.getWithOneParam(agentUrlUtil.getDefault(), "cluster", cluster); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/default + * { + * "property": [{ + * "value": "1", + * "name": "useSqlStat" + * }, { + * "value": "0", + * "name": "useGlobleTableCheck" + * }, { + * "value": "druidparser", + * "name": "defaultSqlParser" + * }, { + * "value": "2", + * "name": "sequnceHandlerType" + * }, { + * "value": "0", + * "name": "processorBufferPoolType" + * }, { + * "value": "0", + * "name": "handleDistributedTransactions" + * }, { + * "value": "1", + * "name": "useOffHeapForMerge" + * }, { + * "value": "1m", + * "name": "memoryPageSize" + * }, { + * "value": "1k", + * "name": "spillsFileBufferSize" + * }, { + * "value": "0", + * "name": "useStreamOutput" + * }, { + * "value": "384m", + * "name": "systemReserveMemorySize" + * }] + * } + * + * @param cluster + * @param body + * @return + */ + @RequestMapping(value = "/{cluster}/server/default", method = {RequestMethod.POST}) + public RestResponse updateDefault(@PathVariable String cluster, @RequestBody String body) { + String response = restTemplateUtils.postBodyWithOneUriParams(agentUrlUtil.updateDefault(), "cluster", cluster, body); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/user + * + * @param cluster + * @return + */ + @RequestMapping(value = "/{cluster}/server/user", method = {RequestMethod.GET}) + public RestResponse getUser(@PathVariable String cluster) { + String response = restTemplateUtils.getWithOneParam(agentUrlUtil.getUser(), "cluster", cluster); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/user + * [{ + * "name": "root", + * "property": [{ + * "value": "", + * "name": "password" + * }, { + * "value": "TESTDB", + * "name": "schemas" + * }] + * }, { + * "name": "user", + * "property": [{ + * "value": "", + * "name": "password" + * }, { + * "value": "TESTDB", + * "name": "schemas" + * }, { + * "value": "true", + * "name": "readOnly" + * }] + * }] + * + * @param cluster + * @param body + * @return + */ + @RequestMapping(value = "/{cluster}/server/user", method = {RequestMethod.POST}) + public RestResponse updateUser(@PathVariable String cluster, @RequestBody String body) { + String response = restTemplateUtils.postBodyWithOneUriParams(agentUrlUtil.updateUser(), "cluster", cluster, body); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/charset + * + * @param cluster + * @return + */ + @RequestMapping(value = "/{cluster}/server/charset", method = {RequestMethod.GET}) + public RestResponse getCharset(@PathVariable String cluster) { + String response = restTemplateUtils.getWithOneParam(agentUrlUtil.getCharset(), "cluster", cluster); + return returnRestResponse(response); + } + + /** + * http://127.0.0.1:7001/mycat/zk/mycat-cluster-1/server/charset + * + * @param cluster + * @return + */ + @RequestMapping(value = "/{cluster}/server/charset", method = {RequestMethod.POST}) + @CrossOrigin(origins = "*") + public RestResponse updateCharset(@PathVariable String cluster, @RequestBody String body) { + String response = restTemplateUtils.postBodyWithOneUriParams(agentUrlUtil.getCharset(), "cluster", cluster, body); + return returnRestResponse(response); + } + + private RestResponse returnRestResponse(String response) { + if (response.isEmpty()) { + return RestResponse.buildExceptionResponse(Constant.REST_FAIL_CODE, Constant.REST_FAIL_MESSAGE); + } + + RestResponse restResponse = JSON.parseObject(response, RestResponse.class); + if (restResponse == null) { + return RestResponse.buildExceptionResponse(Constant.REST_FAIL_CODE, Constant.REST_FAIL_MESSAGE); + } + + if (restResponse.getCode() != Constant.ZERO) { + return restResponse; + } + return restResponse; + } + +} diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/controller/MysqlServerController.java b/mycateye-web/src/main/java/io/mycat/eye/web/controller/MysqlServerController.java index 8f80badcf987ecd4fb75825c5e6b3af1779eaa60..c4cb262664eb715968e7fb13d5675e7a8d8823f7 100644 --- a/mycateye-web/src/main/java/io/mycat/eye/web/controller/MysqlServerController.java +++ b/mycateye-web/src/main/java/io/mycat/eye/web/controller/MysqlServerController.java @@ -1,31 +1,42 @@ package io.mycat.eye.web.controller; -import java.util.List; - +import io.mycat.eye.web.bean.MysqlServer; +import io.mycat.eye.web.service.MysqlServerService; +import io.mycat.eye.web.util.AgentUrlUtil; +import io.mycat.eye.web.util.RestTemplateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import io.mycat.eye.web.bean.MysqlServer; -import io.mycat.eye.web.service.MysqlServerService; +import java.util.List; -/** - * @ClassName: MysqlServerController +/** + * @ClassName: MysqlServerController * @Description: MySQL服务器节点Controller - * @author: 李平(360841519@qq.com) - * @date: 2017年4月11日 下午4:25:31 - * - * @Copyright: 2017 www.mycat.io Inc. All rights reserved. + * @author: 李平(360841519 @ qq.com) + * @date: 2017年4月11日 下午4:25:31 + * @Copyright: 2017 www.mycat.io Inc. All rights reserved. */ @RestController -public class MysqlServerController extends AbstractController{ - @Autowired - private MysqlServerService mysqlServerService; - - - @RequestMapping("/mysql/node/all") - public List getAllNodes() { - return mysqlServerService.getAllNodes(); - } - +public class MysqlServerController extends AbstractController { + @Autowired + private MysqlServerService mysqlServerService; + @Autowired + private AgentUrlUtil agentUrlUtil; + @Autowired + private RestTemplateUtils restTemplateUtils; + + @RequestMapping("/mysql/node/all") + public List getAllNodes() { + return mysqlServerService.getAllNodes(); + } + + + @RequestMapping("/mysql/node/server") + public List getServer() { + + return mysqlServerService.getAllNodes(); + } + + } diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/service/MysqlClusterService.java b/mycateye-web/src/main/java/io/mycat/eye/web/service/MysqlClusterService.java index f631a60c1e0a1fe35237ebad512586be2c2c1c70..f087cc90410feea81fbf11ad4d788bd8a586402c 100644 --- a/mycateye-web/src/main/java/io/mycat/eye/web/service/MysqlClusterService.java +++ b/mycateye-web/src/main/java/io/mycat/eye/web/service/MysqlClusterService.java @@ -20,4 +20,5 @@ public class MysqlClusterService { public List getAll(MysqlClusterExample example){ return mapper.selectByExample(example); } + } diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/util/AgentUrlUtil.java b/mycateye-web/src/main/java/io/mycat/eye/web/util/AgentUrlUtil.java index bcb764e4890d5a779044890c7b6cd44b5e172a57..e1daa7978292c0991f59aaee7b5696b7adba2733 100644 --- a/mycateye-web/src/main/java/io/mycat/eye/web/util/AgentUrlUtil.java +++ b/mycateye-web/src/main/java/io/mycat/eye/web/util/AgentUrlUtil.java @@ -24,42 +24,44 @@ public class AgentUrlUtil { return agentUrl + "/statement/history/{serverId}/{orderBy}"; } - String agentZkUrl = agentUrl + "/zk"; + public String getAgentZkUrl() { + return agentUrl + "/zk"; + } public String getZkClusterAll() { - return agentZkUrl + "/{cluster}/server/cluster/all"; + return getAgentZkUrl() + "/{cluster}/server/cluster/all"; } public String getZkCluster() { - return agentZkUrl + "/{cluster}/server/cluster/{clusterName}"; + return getAgentZkUrl() + "/{cluster}/server/cluster/{clusterName}"; } public String updateZkCluster() { - return agentZkUrl + "/{cluster}/server/cluster/{clusterName}"; + return getAgentZkUrl() + "/{cluster}/server/cluster/{clusterName}"; } public String getDefault() { - return agentZkUrl + "/{cluster}/server/default"; + return getAgentZkUrl() + "/{cluster}/server/default"; } public String updateDefault() { - return agentZkUrl + "/{cluster}/server/default"; + return getAgentZkUrl() + "/{cluster}/server/default"; } public String getUser() { - return agentZkUrl + "/{cluster}/server/user"; + return getAgentZkUrl() + "/{cluster}/server/user"; } public String updateUser() { - return agentZkUrl + "/{cluster}/server/user"; + return getAgentZkUrl() + "/{cluster}/server/user"; } public String getCharset() { - return agentZkUrl + "/{cluster}/server/charset"; + return getAgentZkUrl() + "/{cluster}/server/charset"; } public String updateCharset() { - return agentZkUrl + "/{cluster}/server/charset"; + return getAgentZkUrl() + "/{cluster}/server/charset"; } public String getCreateTable() { diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/util/MiscUtil.java b/mycateye-web/src/main/java/io/mycat/eye/web/util/MiscUtil.java index 38fe4cfb71ca94138e5845e0d6a9f5913e87a901..9c11b46039b50b319d1ad7df940155409cf7ba6e 100644 --- a/mycateye-web/src/main/java/io/mycat/eye/web/util/MiscUtil.java +++ b/mycateye-web/src/main/java/io/mycat/eye/web/util/MiscUtil.java @@ -1,12 +1,13 @@ -/** +/** * All rights Reserved, Designed By www.openwork.org.cn - * @Title: MiscUtil.java - * @Package cn.org.openwork.nosql.util - * @Description: 常用工具类 - * @author: 李平(360841519@qq.com) - * @date: 2017年7月21日 下午2:53:20 - * @version V1.0 - * @Copyright: 2017 www.openwork.org.cn Inc. All rights reserved. + * + * @Title: MiscUtil.java + * @Package cn.org.openwork.nosql.util + * @Description: 常用工具类 + * @author: 李平(360841519 @ qq.com) + * @date: 2017年7月21日 下午2:53:20 + * @version V1.0 + * @Copyright: 2017 www.openwork.org.cn Inc. All rights reserved. */ package io.mycat.eye.web.util; @@ -14,40 +15,40 @@ import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; +import java.util.Map; -/** - * @ClassName: MiscUtil +/** + * @ClassName: MiscUtil * @Description:常用工具类 - * @author: 李平(360841519@qq.com) - * @date: 2017年7月21日 下午2:53:20 - * - * @Copyright: 2017 www.openwork.org.cn Inc. All rights reserved. + * @author: 李平(360841519 @ qq.com) + * @date: 2017年7月21日 下午2:53:20 + * @Copyright: 2017 www.openwork.org.cn Inc. All rights reserved. */ -public class MiscUtil -{ +public class MiscUtil { /** * 字节数转换为MB格式 - * @Title: bytesToMb + * * @param bytes - * @return + * @return * @throws + * @Title: bytesToMb */ - public static String bytesToMb(String bytes) - { + public static String bytesToMb(String bytes) { BigDecimal bytesBigDecimal = new BigDecimal(bytes); BigDecimal mbBigDecimal = bytesBigDecimal.divide(new BigDecimal(1024 * 1024), 1, BigDecimal.ROUND_HALF_UP); return mbBigDecimal.toString(); } - + /** * 将秒数转换为已读的时间格式 - * @Title: secondsToHumanTime + * * @param sec - * @return + * @return * @throws + * @Title: secondsToHumanTime */ - public static String secondsToHumanTime(long sec) - { + public static String secondsToHumanTime(long sec) { long mss = sec * 1000; long days = mss / (1000 * 60 * 60 * 24); long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); @@ -55,15 +56,16 @@ public class MiscUtil long seconds = (mss % (1000 * 60)) / 1000; return days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒"; } + /** * 根据偏移量获取时间 - * @Title: getDateTimeByOffsetHours + * * @param addHours - * @return + * @return * @throws + * @Title: getDateTimeByOffsetHours */ - public static Date getDateTimeByOffsetHours(int addHours) - { + public static Date getDateTimeByOffsetHours(int addHours) { java.util.Calendar cal = java.util.Calendar.getInstance(); int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET); int dstOffset = cal.get(java.util.Calendar.DST_OFFSET); @@ -72,94 +74,89 @@ public class MiscUtil Date date = cal.getTime(); return date; } - + /** * 格式化时间 - * @Title: getDateTimeByFormat + * * @param date - * @return + * @return * @throws + * @Title: getDateTimeByFormat */ - public static String getFormatDateTime(Date date){ + public static String getFormatDateTime(Date date) { return new SimpleDateFormat("MM-dd HH:mm:ss").format(date); } + /** * 获取当前时间字符串 - * @Title: getCurrentDateTimeStr - * @return + * + * @return * @throws + * @Title: getCurrentDateTimeStr */ - public static String getCurrentDateTimeStr() - { + public static String getCurrentDateTimeStr() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); } + /** * 根据 - * @Title: getDateTimeStrByHour + * * @param hour - * @return + * @return * @throws + * @Title: getDateTimeStrByHour */ - public static String getDateTimeStrByOffsetHours(int hour) - { + public static String getDateTimeStrByOffsetHours(int hour) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) + hour); return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()); - + } - + /** * 字节转KB MB GB - * @Title: getHumanSize + * * @param size - * @return + * @return * @throws + * @Title: getHumanSize */ - public static String getHumanSizeByBytes(long size) - { + public static String getHumanSizeByBytes(long size) { //如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义 - if (size < 1024) - { + if (size < 1024) { return String.valueOf(size) + "B"; - } - else - { + } else { size = size / 1024; } //如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位 //因为还没有到达要使用另一个单位的时候 //接下去以此类推 - if (size < 1024) - { + if (size < 1024) { return String.valueOf(size) + "KB"; - } - else - { + } else { size = size / 1024; } - if (size < 1024) - { + if (size < 1024) { //因为如果以MB为单位的话,要保留最后1位小数, //因此,把此数乘以100之后再取余 size = size * 100; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "MB"; - } - else - { + } else { //否则如果要以GB为单位的,先除于1024再作同样的处理 size = size * 100 / 1024; return String.valueOf((size / 100)) + "." + String.valueOf((size % 100)) + "GB"; } } + /** * 秒转为易读的时间 - * @Title: getHumanTimeBySeconds + * * @param sec - * @return + * @return * @throws + * @Title: getHumanTimeBySeconds */ - public static String getHumanTimeBySeconds(long sec) - { + public static String getHumanTimeBySeconds(long sec) { long mss = sec * 1000; long days = mss / (1000 * 60 * 60 * 24); long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60); @@ -167,4 +164,16 @@ public class MiscUtil long seconds = (mss % (1000 * 60)) / 1000; return days + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒"; } + + public static Map mapOf(String key, String value) { + HashMap map = new HashMap<>(); + map.put(key, value); + return map; + } + public static Map mapOf(String key, String value,String key2,String value2) { + HashMap map = new HashMap<>(2); + map.put(key, value); + map.put(key2,value2); + return map; + } } diff --git a/mycateye-web/src/main/java/io/mycat/eye/web/util/RestTemplateUtils.java b/mycateye-web/src/main/java/io/mycat/eye/web/util/RestTemplateUtils.java index ff539f59ea548160ece6895675b56e9b3e4c8773..30deac2eb3977ff3d0fae207ffe847f61f85f254 100644 --- a/mycateye-web/src/main/java/io/mycat/eye/web/util/RestTemplateUtils.java +++ b/mycateye-web/src/main/java/io/mycat/eye/web/util/RestTemplateUtils.java @@ -1,9 +1,5 @@ package io.mycat.eye.web.util; -import static java.util.Collections.singletonList; - -import java.io.IOException; -import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -18,129 +14,143 @@ import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.client.RestTemplate; +import java.io.IOException; +import java.util.Map; + +import static java.util.Collections.singletonList; + @Component -public class RestTemplateUtils -{ +public class RestTemplateUtils { private static final Logger LOGGER = LoggerFactory.getLogger(RestTemplateUtils.class); - + private static final String STRING_EMPTY = ""; - + @Autowired protected RestTemplate restTemplate; - - public String get(String url, Map headers, Map params) - { - if (StringUtils.isEmpty(url)) - { + + public String get(String url, Map headers, Map params) { + if (StringUtils.isEmpty(url)) { return STRING_EMPTY; } - - try - { + + try { setHeaders(headers); - if (params != null && !params.isEmpty()) - { + if (params != null && !params.isEmpty()) { return restTemplate.getForObject(url, String.class, params); } return restTemplate.getForObject(url, String.class); - } - catch (Exception e) - { + } catch (Exception e) { LOGGER.error("调用远程Restful接口失败,调用方式:GET,接口地址:" + url + ",接口参数:" + params + ",Header参数:" + headers, e); - } - finally - { + } finally { restTemplate.setInterceptors(null); } return STRING_EMPTY; } - - private void setHeaders(Map headers) - { - if (headers != null && !headers.isEmpty()) - { + + private void setHeaders(Map headers) { + if (headers != null && !headers.isEmpty()) { ClientHttpRequestInterceptor acceptHeaderPdf = new AcceptHeaderHttpRequestInterceptor(headers); restTemplate.setInterceptors(singletonList(acceptHeaderPdf)); } } - - public String get(String url) - { + + public String get(String url) { return get(url, null, null); } - - public String get(String url, Map params) - { + + public String getWithOneParam(String url, String key, String value) { + return get(url, null, MiscUtil.mapOf(key, value)); + } + + public String getWithTwoParam(String url, String key, String value, String key2, String value2) { + + return get(url, null, MiscUtil.mapOf(key, value, key2, value2)); + } + + public String get(String url, Map params) { return get(url, null, params); } - - public String getAndHeaders(String url, Map headers) - { + + public String getAndHeaders(String url, Map headers) { return get(url, headers, null); } - - public String post(String url, Map headers, Map params) - { - if (StringUtils.isEmpty(url)) - { + + public String post(String url, Map headers, Map params) { + if (StringUtils.isEmpty(url)) { return STRING_EMPTY; } - - try - { + + try { setHeaders(headers); HttpEntity> entity = new HttpEntity<>(params); return restTemplate.postForObject(url, entity, String.class); - } - catch (Exception e) - { + } catch (Exception e) { LOGGER.error("调用远程Restful接口失败,调用方式:POST,接口地址:" + url + ",接口参数:" + params + ",Header参数:" + headers, e); + } finally { + restTemplate.setInterceptors(null); + } + return STRING_EMPTY; + } + + public String postBodyWithOneUriParams(String url, String uriParmaKey, String uriParamValue, String body) { + return postBodyWithUriParams(url, null, MiscUtil.mapOf(uriParmaKey, uriParamValue), body); + } + + public String postBodyWithTwoUriParams(String url, String uriParmaKey, String uriParamValue, String uriParmaKey2, String uriParamValue2, String body) { + return postBodyWithUriParams(url, null, MiscUtil.mapOf(uriParmaKey, uriParamValue, uriParmaKey2, uriParamValue2), body); + } + + public String postBodyWithUriParams(String url, Map uriParams, String body) { + return postBodyWithUriParams(url, null, uriParams, body); + } + + public String postBodyWithUriParams(String url, Map headers, Map uriParams, String body) { + if (StringUtils.isEmpty(url)) { + return STRING_EMPTY; } - finally - { + + try { + setHeaders(headers); + return restTemplate.postForObject(url, body, String.class, uriParams); + } catch (Exception e) { + LOGGER.error("调用远程Restful接口失败,调用方式:POST,接口地址:" + url + ",uri参数:" + uriParams + ",Header参数:" + headers + ",Body参数:", e); + } finally { restTemplate.setInterceptors(null); } return STRING_EMPTY; } - - public String post(String url) - { + + public String post(String url) { return post(url, null, null); } - - public String post(String url, Map params) - { + + public String post(String url, Map params) { return post(url, null, params); } - - public String postAndHeaders(String url, Map headers) - { + + public String postAndHeaders(String url, Map headers) { return get(url, headers, null); } - - static class AcceptHeaderHttpRequestInterceptor implements ClientHttpRequestInterceptor - { + + static class AcceptHeaderHttpRequestInterceptor implements ClientHttpRequestInterceptor { private final Map headerValues; - - public AcceptHeaderHttpRequestInterceptor(Map headerValues) - { + + public AcceptHeaderHttpRequestInterceptor(Map headerValues) { this.headerValues = headerValues; } - + @Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) - throws IOException - { - + throws IOException { + HttpRequestWrapper requestWrapper = new HttpRequestWrapper(request); - + HttpHeaders headers = requestWrapper.getHeaders(); - - for (Map.Entry entry : headerValues.entrySet()) - { + + for (Map.Entry entry : headerValues.entrySet()) { headers.set(entry.getKey(), entry.getValue()); } - + return execution.execute(requestWrapper, body); } }