restTemplate工具类
2024-08-23 20:33:34
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;
}
}
最新文章
- ntp
- Linux Hadoop2.7.3 安装(单机模式) 一
- 发一份shiro标准配置,特此记录
- DEDECMS 留言薄模块的使用方法
- 2015 年最受 Linux 爱好者欢迎的软硬件大盘点
- JavaWeb:JavaBean基础
- MySQL中的datetime与timestamp比较-------转载
- Python串口编程
- .net 常用Response.ContentType
- 关于博客名&ldquo;大话济公&rdquo;的说明
- hdu 5430 Reflect (数学推导题)
- Hive 安装过程中的问题
- C++学习(八)入门篇——复合类型
- linkin大话面向对象--包和导入
- java线程interrupt、interrupted 、isInterrupted区别
- .NET Core微服务之基于Steeltoe使用Hystrix熔断保护与监控
- NOIP-比例简化
- python pprint模块
- input清空和select重置
- 学习 IOC 设计模式前必读:依赖注入的三种实现
热门文章
- 《x86汇编语言:从实模式到保护模式 》学习笔记之:第一次编写汇编语言
- Seata简单介绍及其原理(一)
- ubantu apache2.4.6 apache https配置
- Anaconda-navigator 打不开的解决方法(亲测有效!)
- LOJ504「LibreOJ β Round」ZQC 的手办
- E. Natasha, Sasha and the Prefix Sums
- 使用ajax异步下载文件,后端为struts2
- [CF1054C]Candies Distribution
- View 层
- awk调用系统命令