详解使用Spring的restTemplete进行Http请求
发布时间 - 2026-01-11 01:44:12 点击率:次最近学习Spring框架,本文介绍了使用Spring的restTemplete进行Http请求,留个笔记
/*
* rest templete
*/
public class RestTemplateTest {
//private static String url = "http://10.2.1.46:8080";
private static String url = "http://127.0.0.1:8080/test";
private static String autoDeploy = "/api/ddd/manages/yyy/1111";
public static void main(String[] args) throws UnsupportedEncodingException {
JSONObject token1 = LoginTest.login(url);
JSONObject token = new JSONObject();
token.put("token", token1.getString("token"));
token.put("userName", "chenchen.ming@56qq.com");
String name = "明辰晨";
token.put("name", URLEncoder.encode(name, "UTF-8"));
String jsonBody = DmsAutoDeployTest.dmsAutoDeployData();
autoDeploy(jsonBody,token.toJSONString());
}
/*
* 主要的post方法
*/
public static void autoDeploy(String json,String token){
String autoDeployUrl = url + autoDeploy;
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
//一定要设置好ContentType为utf8否则会乱码
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
headers.add("Authentication", token);//设置自定义session header
HttpEntity<String> formEntity = new HttpEntity<String>(json, headers);
Map<String, Object> parameterMap = new HashMap<>();
//entity = Header,uriVariables = Parameters;
restTemplate.postForObject(autoDeployUrl, formEntity, String.class, parameterMap);
}
/*
* 测试
*/
public static void test4(){
JSONObject response = null;
Map<String,Object> param = new HashMap<>();
param.put("ming", "chyen");
String json = "haha";
try {
response = RestUtil.post("http://127.0.0.1:8080/cloud-master/api/release/manages/detail", JSONObject.class,null,null,json);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(response);
}
/**
* 测试
*/
public static void test(){
RestTemplate restTemplate = new RestTemplate();
Map<String, Object> parameterMap = new HashMap<>();
restTemplate.getForObject("url", String.class,parameterMap);
//factory.createRequest(uri, httpMethod)
}
}
Util
/**
* 使用Spring的restTemplate进行http请求
* @author Mingchenchen
*
*/
public class RestUtil {
private static RestTemplate restTemplate = new RestTemplate();
/**
* Get方法
*
* @param url:地址
* @param returnClassName:返回对象类型,如:String.class
* @param parameters:parameter参数
* @return
*/
public static <T> T get(String url, Class<T> returnClassName, Map<String, Object> parameters){
if (parameters == null) {
return restTemplate.getForObject(url, returnClassName);
}
return restTemplate.getForObject(url, returnClassName, parameters);
}
/**
* post请求,包含了路径,返回类型,Header,Parameter
*
* @param url:地址
* @param returnClassName:返回对象类型,如:String.class
* @param inputHeader
* @param inputParameter
* @param jsonBody
* @return
*/
public static <T> T post(String url,Class<T> returnClassName,Map<String,Object> inputHeader,Map<String,Object> inputParameter,String jsonBody){
//请求Header
HttpHeaders httpHeaders = new HttpHeaders();
//拼接Header
if (inputHeader != null) {
Set<String> keys = inputHeader.keySet();
for (Iterator<String> i = keys.iterator(); i.hasNext();) {
String key = (String) i.next();
httpHeaders.add(key, inputHeader.get(key).toString());
}
}
//设置请求的类型及编码
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
httpHeaders.setContentType(type);
httpHeaders.add("Accept", "application/json");
List<MediaType> acceptableMediaTypes = new ArrayList<>();
acceptableMediaTypes.add(MediaType.ALL);
httpHeaders.setAccept(acceptableMediaTypes);
HttpEntity<String> formEntity = new HttpEntity<String>(jsonBody, httpHeaders);
if (inputParameter==null) {
return restTemplate.postForObject(url, formEntity, returnClassName);
}
return restTemplate.postForObject(url, formEntity, returnClassName, inputParameter);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# restTemplete
# Http请求
# resttemplate
# put请求
# get请求
# Spring MVC 框架搭建配置方法及详解
# Spring中的事务管理实例详解
# SpringMVC文件上传 多文件上传实例
# SpringMVC+MyBatis声明式事务管理
# Spring常用注解汇总
# Spring实现文件上传(示例代码)
# 读取spring配置文件的方法(spring读取资源文件)
# 详解Java的Spring框架中的注解的用法
# Spring MVC中上传文件实例
# 自定义
# 则会
# 留个
# 大家多多
# 包含了
# qq
# ming
# 明辰晨
# UTF
# encode
# URLEncoder
# token
# put
# login
# LoginTest
# chenchen
# getString
# userName
# jsonBody
# ContentType
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何快速搭建自助建站会员专属系统?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel如何实现本地化和多语言支持?(i18n教程)
Laravel API资源类怎么用_Laravel API Resource数据转换
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
如何获取上海专业网站定制建站电话?
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何获取PHP WAP自助建站系统源码?
iOS正则表达式验证手机号、邮箱、身份证号等
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何在云主机上快速搭建网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
html5的keygen标签为什么废弃_替代方案说明【解答】
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
EditPlus中的正则表达式 实战(1)
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
简单实现jsp分页
香港服务器选型指南:免备案配置与高效建站方案解析
大型企业网站制作流程,做网站需要注册公司吗?
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
微信小程序 闭包写法详细介绍
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
C语言设计一个闪闪的圣诞树
北京的网站制作公司有哪些,哪个视频网站最好?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何正确选择百度移动适配建站域名?
实例解析Array和String方法
详解Android图表 MPAndroidChart折线图
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
如何挑选最适合建站的高性能VPS主机?
Laravel Fortify是什么,和Jetstream有什么关系
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
Laravel如何实现模型的全局作用域?(Global Scope示例)
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel如何处理异常和错误?(Handler示例)
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel如何实现用户密码重置功能?(完整流程代码)
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?

