package com.mr.controller;
import org.apache.commons.beanutils.BeanMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.*;
/**
* @author Egan
* @date 2019/4/22 18:29
**/
public class BaseControllerTest {
protected static Logger logger = LoggerFactory.getLogger("Unit-Test");
private static String host;
private static String token;
public BaseControllerTest(String host, String token) {
BaseControllerTest.host = host;
BaseControllerTest.token = token;
}
@Autowired
protected RestTemplate restTemplate;
/**
* 普通请求头,适用于url参数
**/
protected HttpHeaders getHeader() {
HttpHeaders headers = new HttpHeaders();
headers.set("token", token);
return headers;
}
/**
* json请求头,适用于json参数
**/
protected HttpHeaders getJsonHeader() {
HttpHeaders headers = getHeader();
headers.set("content-type", "application/json;charset=UTF-8");
return headers;
}
/**
* xml请求头
**/
protected HttpHeaders getXmlHeader() {
HttpHeaders headers = getHeader();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_XML));
return headers;
}
/**
* 适用于上传文件
**/
protected HttpHeaders getFileHeader() {
HttpHeaders headers = getHeader();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
return headers;
}
/**
* http请求测试(传入参数自动拼接url)
*
* @param url 不含协议、主机名和端口号的部分url
* @param method http方法
* @param params 请求参数
* @date 2019/4/22 20:07
**/
protected void requestAuto(String url, HttpMethod method, Object params) {
HttpEntity<String> requestEntity = new HttpEntity<>(getHeader());
Map map = new BeanMap(params);
url = host + url;
Set keys = map.keySet();
if (keys.size() > 0) {
Iterator iter = keys.iterator();
StringBuilder urlBuilder = new StringBuilder(url);
Object key = iter.next();
urlBuilder.append("?").append(key).append("=").append(map.get(key));
while (iter.hasNext()) {
key = iter.next();
urlBuilder.append("&")
.append(key)
.append("=")
.append(map.get(key));
}
url = urlBuilder.toString();
}
ResponseEntity<String> responseEntity = restTemplate.exchange(
url, method, requestEntity, String.class);
print(url, requestEntity, responseEntity);
}
/**
* http请求测试(手动拼接url)
*
* @param url 不含协议、主机名和端口号的部分url
* @param method http方法
* @param params 请求参数
* @date 2019/4/22 20:07
**/
protected void requestManual(String url, HttpMethod method, Object... params) {
HttpEntity<String> requestEntity = new HttpEntity<>(getHeader());
url = host + url;
ResponseEntity<String> responseEntity = restTemplate.exchange(
url, method, new HttpEntity<>(getHeader()), String.class, params);
print(url, requestEntity, responseEntity);
}
/**
* 上传文件专用
**/
protected void requestFile(String url, HttpMethod method, HttpEntity<MultiValueMap<String, Object>> requestEntity) {
ResponseEntity<String> responseEntity = restTemplate.exchange(
host + url
, method, requestEntity, String.class);
print(url, requestEntity, responseEntity);
}
private void print(String url, HttpEntity requestEntity, ResponseEntity responseEntity) {
logger.info("request-url:" + url);
logger.info("request-header:" + requestEntity.getHeaders());
logger.info("request-body:" + requestEntity.getBody());
logger.info("response-status-code:" + responseEntity.getStatusCode());
logger.info("response-header:" + responseEntity.getHeaders());
logger.info("response-body:" + responseEntity.getBody());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot+Spark+Hadoop的电影评分网站源码+详细文档+全部数据资料 高分项目.zip
共57个文件
java:38个
scala:12个
xml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 55 浏览量
2024-05-08
17:15:08
上传
评论
收藏 48KB ZIP 举报
温馨提示
【资源说明】 基于SpringBoot+Spark+Hadoop的电影评分网站源码+详细文档+全部数据资料 高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+Spark+Hadoop的电影评分网站源码+详细文档+全部数据资料 高分项目.zip (57个子文件)
171265889347208773632.zip 416B
Movie-Ratings-master
pom.xml 5KB
web
pom.xml 5KB
src
main
resources
application-dev.yml 1KB
application.yml 724B
java
com
mr
web
Application.java 878B
controller
RatingController.java 551B
UserController.java 787B
TagController.java 619B
StreamController.java 980B
StatisticsController.java 2KB
MovieController.java 2KB
auth
AuthRealm.java 2KB
config
ShiroConfig.java 4KB
scala
StreamAction.scala 2KB
UsersAction.scala 675B
TagsAction.scala 714B
WriteFile.scala 395B
MoviesAction.scala 1KB
SQLAction.scala 3KB
HelloWorld.scala 4KB
stream
StreamAction.scala 2KB
WriteFile.scala 399B
StreamingFile.scala 914B
RatingsAction.scala 931B
StreamingFile.scala 927B
common
pom.xml 3KB
src
main
java
com
mr
controller
BaseControllerTest.java 4KB
BaseController.java 429B
utils
IPUtils.java 2KB
RegexpUtils.java 313B
HashUtils.java 1KB
RedisUtil.java 2KB
RedisKey.java 231B
GsonUtils.java 450B
RedisLockUtils.java 2KB
PageUtils.java 1KB
DateUtils.java 2KB
R.java 1KB
Query.java 884B
entity
User.java 815B
exception
RRException.java 890B
validator
group
AddGroup.java 115B
Group.java 204B
UpdateGroup.java 118B
ValidatorUtils.java 1KB
Assert.java 959B
auth
AuthToken.java 506B
AuthFilter.java 3KB
config
TransactionConfig.java 4KB
ExceptionHandlerConfig.java 3KB
WebConfig.java 2KB
RedisConfig.java 3KB
MybatisConfig.java 465B
AuthConfig.java 686B
FilterConfig.java 1015B
.gitignore 1KB
共 57 条
- 1
资源评论
- 2401_858166012024-11-24资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
不走小道
- 粉丝: 3367
- 资源: 5054
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 华彩-舜宇项目—公司年度培训计划表.doc
- 华彩-舜宇项目—联想---规划培训.ppt
- Screenshot_20241218_134907.jpg
- 华彩-舜宇项目—培训管理制度.doc
- 华彩-舜宇项目—培训管理体系.doc
- 基于flink (SQL)的特征加工平台详细文档+全部资料.zip
- 基于Flink+ClickHouse实时计算平台详细文档+全部资料.zip
- 华彩-舜宇项目—如何进行战略与年度规划培训.ppt
- 基于Flink 的商品实时推荐系统。当用户产生评分行为时,数据由 kafka 发送到 flink,根据用户历史评分行为进行实时和离线推荐。实时推荐包括:基于行为
- 基于Flink+ClickHouse构建亿级电商实时数据分析平台(PC、移动、小程序)详细文档+全部资料.zip
- 基于flink1.9.1,flink-sql-client模块SDK单独实现,支持Yarn集群的远程SQL任务发布,可以支撑flink sql任务的远程化执行详细文档+全部资料.zip
- 基于flink-sql在flink上运行sql构建数据流的平台详细文档+全部资料.zip
- 华彩咨询—杭挂集团—杭挂企业集团培训管理办法--外派培训.doc
- 华彩咨询—杭挂集团—杭挂企业集团培训管理办法(总则).doc
- 华彩咨询—杭挂集团—杭挂企业集团培训管理办法--新员工培训.doc
- 华彩咨询—杭挂集团—教育培训制度.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功