import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate; import java.io.UnsupportedEncodingException; public class RestTemplateUtil {
private static Logger logger = LogManager.getLogger(RestTemplateUtil.class); public String post(String reqParam, String url) {
// 核心返回结果报文字符串
String returnJson = ""; try {
//复杂构造函数的使用
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(1000);// 设置超时
requestFactory.setReadTimeout(1000); //利用复杂构造器可以实现超时设置,内部实际实现为 HttpClient
RestTemplate restTemplate = new RestTemplate(requestFactory); //设置HTTP请求头信息,实现编码等
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString()); //利用容器实现数据封装,发送
HttpEntity<String> entity = new HttpEntity<String>(reqParam, headers);
returnJson = restTemplate.postForObject(url, entity, String.class); // 转码原因:RestTemplate默认是使用org.springframework.http.converter.StringHttpMessageConverter来解析
// StringHttpMessageConverter 默认用的 ISO-8859-1来编码的
returnJson = new String(returnJson.getBytes("ISO-8859-1"), "utf-8"); } catch (UnsupportedEncodingException e) {
e.printStackTrace();
logger.info("----------------------------------------");
logger.info(returnJson);
logger.info("----------------------------------------");
}return returnJson;
}
}

最新文章

  1. ntp
  2. Linux Hadoop2.7.3 安装(单机模式) 一
  3. 发一份shiro标准配置,特此记录
  4. DEDECMS 留言薄模块的使用方法
  5. 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
  6. JavaWeb:JavaBean基础
  7. MySQL中的datetime与timestamp比较-------转载
  8. Python串口编程
  9. .net 常用Response.ContentType
  10. 关于博客名&ldquo;大话济公&rdquo;的说明
  11. hdu 5430 Reflect (数学推导题)
  12. Hive 安装过程中的问题
  13. C++学习(八)入门篇——复合类型
  14. linkin大话面向对象--包和导入
  15. java线程interrupt、interrupted 、isInterrupted区别
  16. .NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控
  17. NOIP-比例简化
  18. python pprint模块
  19. input清空和select重置
  20. 学习 IOC 设计模式前必读:依赖注入的三种实现

热门文章

  1. 《x86汇编语言:从实模式到保护模式 》学习笔记之:第一次编写汇编语言
  2. Seata简单介绍及其原理(一)
  3. ubantu apache2.4.6 apache https配置
  4. Anaconda-navigator 打不开的解决方法(亲测有效!)
  5. LOJ504「LibreOJ β Round」ZQC 的手办
  6. E. Natasha, Sasha and the Prefix Sums
  7. 使用ajax异步下载文件,后端为struts2
  8. [CF1054C]Candies Distribution
  9. View 层
  10. awk调用系统命令