什么是使用流文件传输
我们在java学习的时候学到过,数据是以流的形式传输的。同样的,我们可以使用接口来进行数据的传输,这些数据可以是图片,文字,视频等。
简单来说,传输就是把文件获取成流,然后把流放入管道中,然后通过调用来获取这个流文件。
1、我们要干什么
今天的内容就是研究一下关于文件通过什么样的方式进行传输的。
今天的接口要实现的功能是: 1、控制台通过执行PL显示流文件信息 2、通过postman调用接口然后实现图片的下载 3、通过postman传递一个请求,然后通过请求设置下载的文件的名字 4、直接在浏览器输入接口地址,然后进行文件下载 5、直接在浏览器上输入接口地址(要携带参数),然后进行文件下载 上面的是图片,我们下面就搞一下视频 1、通过postman调用接口实现视频的下载
2、接口开发
2.1、控制台通过执行PL显示流文件信息
2.1.1、创建基本的目录结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/4bcdfe2e39cb44aab50df9dcde51ea03.png)
2.1.2、打开项目,然后创建BS
![在这里插入图片描述](https://img-blog.csdnimg.cn/3ba7f4f05ad84856b962ff668725a8e0.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/f2cf2b08a29d405a91f81fd62d47a9fe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/844d4b79984744edb30baabb27487c61.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/ca23ec48e56c4bc3a97bbfc39c0564ca.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 然后要设置一个信息的地址,这个地址可以是图片也可以是其他的 我这里设置的是一张图片
地址是这个
http://tse1-mm.cn.bing.net/th/id/R-C.53e7e06bd0322cc0f2873b29aeb919e0?rik=lVfLPnUjuDg6DA&riu=http%3a%2f%2f5b0988e595225.cdn.sohucs.com%2fimages%2f20190116%2ffc855616fb8041a49ede6c21d48e9bd0.jpeg&ehk=wZqTGpNw99SnqXOCq%2btX2i547h%2bhDrTitxBZ%2fwpoDJs%3d&risl=&pid=ImgRaw&r=0 有些网站的图片的地址是不可以访问的,如果我的这个你访问不到,那就直接去搜一张图片然后修改为http协议的就可以了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3e3340cbb1cb4593a0b21d91c6010e8c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 记得一定一定要是http协议的 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1d7dbbb84ba843008e9fb23b1156de7b.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/afb3803c0b234f96a3570c395f8c3452.png)
2.1.3、创建PL和PS
直接拖拽BS左上角的小箭头就可以拖出来一个pl ![在这里插入图片描述](https://img-blog.csdnimg.cn/da31a63c25e1410db16bc7e33c213f34.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_19,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/43d03337af5b4b22b19f1365e55662ff.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/f204e38793e74f329eb551b221974508.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.1.4、双击进入PL,然后设置PL的组件
我们在这个地方是很简单的,只需要添加一个 Transport Header组件就可以了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8050cd3ad6684f279c98a815bd1bf8a2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 设置组件的参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/a147289b3ec441a8a4657921c15ad8fe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.1.5、设置完成,直接进行测试
将jar包直接导出,然后直接打开运行 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e646e391873f44c7a4d701a9723bb290.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看到响应文档里面写了一堆16进制的数组 这就是一个数据流文件 这样表示我们已经获取了这个图片地址所对应的图片的流文件
我们可以去查看调用跟踪是不是正常的 ![在这里插入图片描述](https://img-blog.csdnimg.cn/14d563b3e4294fe4ace47b4c63f60f15.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_10,color_FFFFFF,t_70,g_se,x_16) 这样我们就完成了这个基础的流文件接口
那么如何把这个文件下载到我们自己的电脑上呢,我们继续往下看
2.2、网页直接浏览,然后进行文件下载
通过之前的学习,我们知道我们写的这个接口是会暴露到外界一个地址的,也就是我们PS的地址
所以我们直接去使用ps的地址来进行访问网页
如果不知道地址在哪里可以通过查看控制台来找到这个地址 ![在这里插入图片描述](https://img-blog.csdnimg.cn/0f6664dc016b4bc4a55d800a35ff46a7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
我的地址就是这个
http://192.168.65.145:8011/DownLoadProject/ProxyServices/Pic_1_PS
其实这个PS 的地址的后半段就是我们文件在jar包里面的路径
直接进行访问 ![在这里插入图片描述](https://img-blog.csdnimg.cn/874d5ce8c7c04f549908aaa7be2b3e9d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看到我们每次执行一次,都会刷新一次界面,然后下载列表也会多一个文件 打开文件查看 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6c3b978a4ed445fa8b13c2d01d98bdee.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 就可以看到,我们已经把这个图片下载到了电脑上 浏览器不同,下载的方式也不同 上面的是EDG 下面给大家展示火狐的访问
![在这里插入图片描述](https://img-blog.csdnimg.cn/62febd50cab344da97c6a82ca883cf4c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 和EDG不同,火狐会多一个确认的窗口
那么如何同过接口调用的方式进行下载呢 我们这里就要使用postman来进行接口调用 继续往下看看吧
2.3、通过postman调用接口实现图片下载
打开postman 然后输入刚刚我们访问浏览器的地址 注意设置post请求 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e01549ba0d8340a0aaf2a5a7fbc11d6f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 然后直接调用接口 我们会发现,响应框里面全是看不懂的乱码 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6a06b9d2bdb240a4b2569f71bb680e1c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 我们查看一下响应的headers
![在这里插入图片描述](https://img-blog.csdnimg.cn/f8599b5c47d94f57a8521456614c4373.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 虽然显示是调用成功的,但是我们并没有看到我们的文件下载到我们的电脑上
呢么我们如何下载这个文件呢
这里需要使用我们之前没有用到过的调用方式:发送并下载(Send and Download)
在发送请求的旁边有一个小箭头,下面会显示我们这里用到的命令 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f159794d8cb34f23ae712f0a18078457.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_10,color_FFFFFF,t_70,g_se,x_16) 直接点击就可以了 可以看到,这个时候,也是会弹出来一个窗口,给用户展示下载的文件存放的位置
![在这里插入图片描述](https://img-blog.csdnimg.cn/70295f0058e140799d0339614eb68632.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 我这里就直接存放在桌面了 点击保存 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a10c5b56e1ba41068e85f062f4e23bea.png) 就会看到我们的桌面多了一个照片,和之前一样,也是可以直接打开的
2.4、通过请求设置下载的文件的文件名
上面说了很多次如何设置下载的文件的文件名,下面就跟大家展示如何设置这个文件的文件名。 我们这里就新建一个和上面一样的接口用来开发了。
2.4.1、创建PL和PS
![在这里插入图片描述](https://img-blog.csdnimg.cn/0db47e2fc5d249ce8299912d62f1aca2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/194e932fcf194fa7b6ec8cea835fc8ae.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 注意设置请求信息
2.4.2、设置PL
双击进入PL ![在这里插入图片描述](https://img-blog.csdnimg.cn/6b67b9bc37234e06986d4561fdd470a4.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/dc6a772c5def4dc58b927b1092194f5a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_10,color_FFFFFF,t_70,g_se,x_16) 放置一个routing ![在这里插入图片描述](https://img-blog.csdnimg.cn/bbad8aeb98c542ff939ef9ee0015d46b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 设置路由的地址 这里的路由就直接设置之前调用成功的BS就可以了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2d75a2bfb81c40548092796ed40d4cba.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/46fdf42808104e7885fede20271866f3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/97efb94aea4e457e9a89a399d530da6b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 设置参数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/dafb5043f0024e00bf65f1405f596a78.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.4.3、获取请求体中的文件名
我在这里就直接获取了,使用xml的稍后会说到 ![在这里插入图片描述](https://img-blog.csdnimg.cn/dfc4d68852aa420bb8124b8d7fe0baec.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.4.4、修改文件输出的名字
打开Transport Header组件 然后使用拼接的方法,把这个字符串和我们的获取的名字进行拼接
如果一直弹窗,就保存一下在进行操作
![在这里插入图片描述](https://img-blog.csdnimg.cn/3a5e353677ac4a19b554b00fecc3acbd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 点击value
![在这里插入图片描述](https://img-blog.csdnimg.cn/a189859e470b4f01894c886aba8cda17.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_19,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/9e2413e599b8406f85122f460617f6a7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b84f974b82fc47e4aaf0412be4911d09.png) 选择concat
![在这里插入图片描述](https://img-blog.csdnimg.cn/536c2db6a3954d7c96cac12353a9cdb0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_11,color_FFFFFF,t_70,g_se,x_16) 使用方法,然后把这两个字符串拼接起来。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e2fe78efd2834d468edf76454c5c41e8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.4.5、接口测试
我们直接在控制台进行操作 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b9f06641795641b48da1de16116c2b74.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 调用成功 ![在这里插入图片描述](https://img-blog.csdnimg.cn/47e9b853b2194e1da71166b52ed34d46.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 查看调用跟踪 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ac127e95986b4672b0fc0e0a4785c7bf.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_11,color_FFFFFF,t_70,g_se,x_16) 我们调用postman再来测试一下 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9a0881af834345038a7fc8c689fec567.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 同样使用 发送并下载也是可以得到一张图片 ![在这里插入图片描述](https://img-blog.csdnimg.cn/56b0d056e13f43cba4b4583e5f11c92b.png)
这样就完成了这个简单的开发 那如果是xml格式的请求又如何获取这个文件名称呢
这里需要进行一层一层的获取你想要的到的数据所属的标签了。 具体的操作请看我的另一篇文章: https://blog.csdn.net/h22407/article/details/120048941 ![在这里插入图片描述](https://img-blog.csdnimg.cn/abfb213927d24243ad3711cd38c60c3b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 这里需要注意的是如果想要发送一个xml形式的text数据且数据不唯一 就像这个一样 ![在这里插入图片描述](https://img-blog.csdnimg.cn/cd9e11960cbe4a59ad8602c1748c65c8.png) 可以自己测试一下,如果直接写出来,就只能获取到最上面的那一层,下面的是获取不到的 所以我们需要包裹一层标签 像这样 ![在这里插入图片描述](https://img-blog.csdnimg.cn/08526482dcf74bc6b24935f266f6b192.png)
2.4.6、已完成的接口展示
![在这里插入图片描述](https://img-blog.csdnimg.cn/14b8f7d1a305421bac1ebff93de95a66.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_13,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4f748d5c43924d98a865befa9a151abe.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_17,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/59e61e3728384d1ca837c721bec53702.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_16,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/a83d0602032b402cadc696f524ca0f18.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 其实和上面的是一样的,就是获取了一下数据 ![在这里插入图片描述](https://img-blog.csdnimg.cn/12ce184f01ef4821bc47c29cd6ac1561.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.5、浏览器携带参数,下载文件
在我们之前的学习中,我们知道可以直接复制连接然后下载文件,那么我们如何让这个链接携带参数,然后完成下载的操作呢。
时间20210909.10.53
2.5.1、创建PL和PS
这里创建的操作我就不再赘述了哦,操作流程和之前是一样的。
2.5.2、设置PL接口的流程
1、先拉取一个routing组件然后关联到我们上面写过的 Pic_1_BS.bix
![在这里插入图片描述](https://img-blog.csdnimg.cn/bd4d22dbd3644469ba6f9994341f5c7a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2、获取我们浏览器要输入的参数 这个参数就是我们在访问是链接里面的?后面的东西 这个在请求的时候是存放在inbound里面的 我们可以来看一下 这个链接发送的请求所对应的inbound就是下面的这个样子的 ![在这里插入图片描述](https://img-blog.csdnimg.cn/6504219f94814f11bc685d0ea47cd901.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 可以看出来,这个一层一层的和我们之前的获取outbound的形式是一样的,也是要用斜杠来进行逐层查询的 这里有一点不同的地方就是我们是需要通过key来获取value的,也就是我们需要先获取name,然后再去获取我们的value的值
并且有一点:这里的获取和替换body的内容是不可以同时进行的,如果想查看自己获取的值是否是自己想要的,需要分开来做这个事情。
![在这里插入图片描述](https://img-blog.csdnimg.cn/fa29086e60384c82b170eb1a0d1d5d89.png) 知道了这些以后我们就开始进行设置
对了replace只是为了去验证你是否能获取到正确的值 在这里其实是不需要多余的,所以我下面就不写了,如果感兴趣,可以自己去研究一下。
拉取一个ass插件,然后设置里面的参数,我这里的inbound是这样的一层一层的,这里的value就可以通过
[@name='变量名称']/@value 来获取
下面的报红就是命名空间的问题,添加一下就可以了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1966f17beb254fc9b88c209805077a50.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 在这里的uri就是我们刚刚看到的inbound里面的地址 如果子标签没有写xmln是什么,那就表示当前标签的命名空间和父标签是一样的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/a17c52dca1504853b6a6e9f31e685999.png) 红色框框里面的就是uti,前面的prefix可以随便写 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ed80978fa82f43408f813d2d4e577e1e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 另一个也是一样的
3、获取value并赋值给fileName
![请添加图片描述](https://img-blog.csdnimg.cn/d94014658805433cb045e051f3c6d3d6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![请添加图片描述](https://img-blog.csdnimg.cn/7d5f8a68f8444288ad6cd67e3000ebe8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
4、修改文件名称
这个和之前的是一样的。
![请添加图片描述](https://img-blog.csdnimg.cn/8277fac1ddb34f4085c0b9be7371bdfa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
最后的PL就是这个样子的:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cd983d1097f4fecb3d353b810de0eab.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_15,color_FFFFFF,t_70,g_se,x_16)
2.5.3、测试接口
我们在这里就直接使用postman去测试了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b2138fc3f3294eb1a142ecc5171c433c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
可以看到,我们获取到了信息,并且也能获取到我们的流文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/bf0bf783d8754e4a8088249158ac2bb1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.5.4、网页测试
这次我们用火狐浏览器来进行测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/a6a12007843546df8b1fb263673c8ef8.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
在火狐直接打开也是可以看到我们的图片的。
![在这里插入图片描述](https://img-blog.csdnimg.cn/201f927c87fd4887968a28d4b25e8105.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
这样我们就完成了一个在浏览器传递参数然后下载文件的操作。
2.6、实现视频下载
既然我们的图片可以下载,是不是视频也是可以通过我们的流来实现下载呢。
我们接下来就试试看咯
2.6.1、在网页找一个时间短一点的视频的文件
http://video-qn.51miz.com/preview/video/00/00/12/18/V-121890-8E465F26.mp4
这个网站恰好可以满足需求哈哈,运气太好了哈哈
好我们资源找到了,就来测试一下吧
2.6.2、设置BS,PL,PS
![在这里插入图片描述](https://img-blog.csdnimg.cn/777e00805482453a9c313b2da0619c7a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_19,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/aef0dc3c6d9e4432a83a68a16c0811cc.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
这个TH组件依旧是我们熟悉的设置的方式
然后我们直接进行测试
测试的时候一定要先去测试我们的BS是否能接通
打开bs然后直接进行测试就可以 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9ba0d0acf9ca4fadbd5a88808273c5c7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 在程序进行到30秒的时候,会报一个错误 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fce213ae8553413b9f52836ee8e1d08d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 这是错误的解释 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4897cc5682c04e75bdc240c5a1ae35aa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 这我们就可以知道这个是一个传输时出现的错误 也就是传输的方式的错误 我们直接用postman去测试一下 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bb6200157e2c44988713e43fa9e67834.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16)
可以看到目标MP4文件的传输格式是直接进行传输 而我们的传输协议默认是这样的 ![在这里插入图片描述](https://img-blog.csdnimg.cn/95efba6bbfad4cb4a52c351401f0b3b7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/60d1895ac20e4c7b8062eceda3b6b840.png) 分块流传输模式 我们把这个默认的取消掉就可以了。
直接取消勾选就可以了 ![在这里插入图片描述](https://img-blog.csdnimg.cn/09ef0f48924d4b0cb009ff3a83243de6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 要记得保存然后再激活 激活以后再去检查一下看是不是已经修改了
![在这里插入图片描述](https://img-blog.csdnimg.cn/ae5ddd13eb1a4e98a29b26196f5036f0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_11,color_FFFFFF,t_70,g_se,x_16) 这样表示就是已经修改了。 再次测试
![在这里插入图片描述](https://img-blog.csdnimg.cn/75cf8ebcc9d643c2bc2caf5b0f459d35.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/27649ebcb27046d2aea6f708b9a65b3c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6buROTI3Mg==,size_20,color_FFFFFF,t_70,g_se,x_16) 再次进行send and Download测试 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b08afa47369b4e5cabf8ccdd0cbec056.png) 可以看到这个弹窗,表示这个就可以下载了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e8e5829b69954ffea27dfd637bde7a45.png) 点开以后也是正常的一个文件。
|