由于我SpringBoot项目,集成了SpringSecurity,而Security框架使用Redis存储Session,所以,这里列出几个关键的类

org.springframework.session.data.redis.RedisIndexedSessionRepository:解析请求携带的Cookie的Repository类
org.springframework.session.web.http.DefaultCookieSerializer:默认提取Cookie序列化的类;org.springframework.session.web.http.DefaultCookieSerializer#readCookieValues看这个方法,就能看出解析的是 Cookie Header

这是使用示例:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)  //这里是说明:以随机端口进行服务器的完整启动(这样请求就会经过过滤器、拦截器等前置处理)
@Slf4j
class UploadFileApiControllerTest { @Resource
private TestRestTemplate testRestTemplate; private HttpHeaders headers; private List<String> cookies; @BeforeEach
void login() throws Exception { ResponseEntity<String> exchange = testRestTemplate.exchange("/user/login", HttpMethod.POST, new HttpEntity<>("{json内容}"), String.class);
System.out.println(exchange.getBody()); headers = exchange.getHeaders();
cookies = exchange.getHeaders().get("Set-Cookie"); } @Test
void initializedUploadFileInfo() throws Exception { File file = ResourceUtils.getFile("classpath:TestLinuxVideo.mp4"); InitializedUploadFileInfoDTO initializedUploadFileInfoDTO = new InitializedUploadFileInfoDTO();
initializedUploadFileInfoDTO.setFileMD5(DigestUtils.md5DigestAsHex(new FileInputStream(file)));
initializedUploadFileInfoDTO.setFilename(file.getName());
initializedUploadFileInfoDTO.setTotalBlockLength(1);
initializedUploadFileInfoDTO.setTotalByteSize(file.length()); String s = new Gson().toJson(initializedUploadFileInfoDTO); log.info("文件初始化信息,请求内容:{}",s); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.putAll(headers);
httpHeaders.add("Cookie",cookies.get(0)); //这里设置base64解码之前的字符串,因为Security框架会进行解码判断是否登录的 HttpEntity<String> stringHttpEntity = new HttpEntity<>(s,httpHeaders); BaseResponseDataVo baseResponseDataVo = testRestTemplate.postForObject("/upload/init", stringHttpEntity, BaseResponseDataVo.class);
System.out.println(baseResponseDataVo); } }

这里看下SpringBoot测试部分的文档:

SpringBoot测试服务器部分说明(完整运行服务器)

TestRestTemplate类文档的部分说明

综合以上,就应该已经很清楚了,上面的代码部分就不一一说明了,欢迎下方留言

SpringBoot单元测试携带Cookie的更多相关文章

  1. Glide请求图片能携带Cookie的哟!

    在Web编程中我们都很熟知一个概念,当有了seesion登录状态时,你可以访问一些资源但如果你没有登录的话很多资源是无法访问的. 在android的WebApi中当然一样拥有这个概念.比如,用户的头像 ...

  2. 携带cookie进行数据请求

    前端进行数据请求有:普通的ajax(json)请求,jsop跨域请求,cors跨域请求,fetch请求...PC端这些请求方式中,普通的ajax(json)请求和jsop跨域请求是默认携带cookie ...

  3. iOS-WKWebView携带cookie发送http请求,cookie失效

    发送请求代码: NSString *testUrl = @"http://10.22.122.7:8081/test2_action/view_index"; NSURL *url ...

  4. python urllib2模块携带cookie

    今天干活遇到一个事.有一些网站的一些操作非得要求你登陆才能做,比如新浪微博,你要随便看看吧,不行,非得让你登陆了才能看,再比如一些用户操作,像更改自己的资料啦,个人的隐私啦巴拉巴拉的.想抓取这样的ur ...

  5. ajax 跨域携带COOKIE

    这个问题属于Ajax跨域携带Cookie的问题,找了一篇博文的解决方案. 原生ajax请求方式: var xhr = new XMLHttpRequest(); xhr.open("POST ...

  6. fetch默认不携带cookie

    最近在使用fetch向服务器发送请求,过程中的体会和遇到的问题在这里记录一下. fetch返回的是一个Promise对象,我们可以对返回的结果做进一步的处理,这是与传统ajax的一个区别. 简单的请求 ...

  7. 关于 Angular 跨域请求携带 Cookie 的问题

    在前端开发调试接口的时候都会遇到跨域请求的问题.传统的方式是使用 Nginx 反向代理解决跨域.比如所有接口都在 a.com 的域下,通过 Nginx 将所有请求代理到 a.com 的域下即可. 使用 ...

  8. vue踩坑(二):跨域以及携带cookie

    最近后台需求要在请求的时候传cooki给后台,正常情况下拿到cookie后存在cookie里,同域名下是会自己带到请求头里的,但是因为要在本地调试,那么问题就来了,localhost:8080下面的c ...

  9. vue + spring boot + spring security 前后端分离 携带 Cookie 登录实现 只写了个登录

    最近想弄一下vue 所以就自己给自己找坑入   结果弄的满身是伤 哈哈哈 首先我说下 前后端分离  跨域请求  我在网上找了一些  可是都是针对于 spring boot 的 我自己还有 securi ...

随机推荐

  1. DoS,DDoS,DRoS攻击

  2. bugku ctf 杂项 旋转跳跃 (熟悉的声音中貌似又隐藏着啥,key:syclovergeek)

    做这道题之前先给出工具   MP3Stego 下载地址 链接:https://pan.baidu.com/s/1W2mmGJcrm570EdJ6o7jD7g  提取码:1h1b 题目下载加压后 是一个 ...

  3. Sencha Cmd 常用命令

    1.获取帮助 sencha help generate app 2.创建应用程序 sencha -sdk e:\ext\ext6 generate app -classic SimpleCMS e:\ ...

  4. 【基础知识】CPU指令周期

    完整执行一条指令所需要的时间 基本概念 指令周期,读取-执行周期(fetch-and-execute cycle)是指CPU要执行指令经过的步骤. 计算机之所以能自动地工作,是因为CPU能从存放程序的 ...

  5. Hadoop权威指南 - 学习笔记

    初识Hadoop.关于MapReduce Hadoop宏观介绍 相对于其他系统的优势 关系型数据库管理系统 为什么不能用配有大量硬盘的数据库进行大规模分析?为什么需要Hadoop? 因为计算机硬盘的发 ...

  6. python文件操作glob_os_等对比

    Python标准库glob介绍 一. glob模块通配符 通配符 功能 * 匹配0或多个字符 ** 匹配所有文件,目录,子目录和子目录里面的文件 (3.5版本新增) ? 匹配一个字符,这里与正则表达式 ...

  7. LeetCode-049-字母异位词分组

    字母异位词分组 题目描述:给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:https: ...

  8. 『德不孤』Pytest框架 — 10、setUp()和tearDown()函数

    目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函 ...

  9. Navicat v15 破解

    特别注意: 1.断网,否则在安装过程中会失败 2.关闭防火墙及杀毒软件 3.选择对应版本:mysql版就选择mysql 4.如果出现 就卸载,删除注册表,重新安装,出现rsa public key n ...

  10. Map 集合

    <零基础学Java > Map 集合 在程序中需要存储具有映射关系就需要使用Map集合了. Map集合由Map接口.Map接口的实现类组成. Map 接口 Map接口没有Collectio ...