/** * The MIT License (MIT) * Copyright (c) 2020 铭软科技(mingsoft.net) * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package net.mingsoft.basic.util; import java.util.Enumeration; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import com.alibaba.fastjson.JSONObject; /** * basic模块,spring RestTemplate工具类 * @author 铭飞开发团队 * @version * 版本号:100-000-000<br/> * 创建日期:2017年9月5日<br/> * 历史修订:<br/> */ public class RestTemplateUtil { private static RestTemplate restTemplate = new RestTemplate(); /** * post请求,保存 * @param req ServletRequest对象 * @param url 请求地址 * @param params 参数 * @return 内容 */ public static String post(ServletRequest req, String url, Map<String, ?> params) { ResponseEntity<String> rss = request(req, url, HttpMethod.POST, params); return rss.getBody(); } /** * get请求,查询 * @param req ServletRequest对象 * @param url 请求地址 * @param params 参数 * @return */ public static String get(ServletRequest req, String url, Map<String, ?> params) { ResponseEntity<String> rss = request(req, url, HttpMethod.GET, params); return rss.getBody(); } /** * 删除 * @param req * @param url * @param params * @return */ public static String delete(ServletRequest req, String url, Map<String, ?> params) { ResponseEntity<String> rss = request(req, url, HttpMethod.DELETE, params); return rss.getBody(); } /** * 保存 * @param req * @param url * @param params * @return */ public static String put(ServletRequest req, String url, Map<String, ?> params) { ResponseEntity<String> rss = request(req, url, HttpMethod.PUT, params); return rss.getBody(); } /** * 请求方法 * @param req ServletRequest对象 * @param url 请求地址 * @param method 方法 * @param params 参数 * @return */ private static ResponseEntity<String> request(ServletRequest req, String url, HttpMethod method, Map<String, ?> params) { HttpServletRequest request = (HttpServletRequest) req; //获取header信息 HttpHeaders requestHeaders = new HttpHeaders(); Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String key = (String) headerNames.nextElement(); String value = request.getHeader(key); requestHeaders.add(key, value); } HttpEntity<String> requestEntity = new HttpEntity<String>(params != null ? JSONObject.toJSONString(params) : null, requestHeaders); ResponseEntity<String> rss = restTemplate.exchange(url, method, requestEntity, String.class); return rss; } }