一个请求的Response 作为另一个请求的response 输出

  • 现有服务 SpringBoot 、nginx;

  • SpringBoot 启动服务 ;

服务内有个接口 /test

  • nginx 启动;

nginx 配置如下;

    server{
        listen 8085;
        server_name test;
        root /Users/ZHG/Documents/CODE/file;
    }
  • 文件所在路径为:/Users/ZHG/Documents/CODE/file/test1/test.wav

  • nodeJS 写法:

var option={
    url:http://localhost:8085/test1/test.wav,
    method:"get",
    header:{
        range:"byte=0-"
    }
}
req.request(option).pipe(res);

问题是:页面请求SpringBoot 服务的test 接口,在test 接口 中重新设置头信息(增加range),去请求 nginx 的8085端口获取文件,然后把nginx读取文件的response 全部返回给页面(和在线播放很像)。类似nodeJS 里的 pipe,java中 怎么实现呢?

1、线程池开一个线程去请求你nginx上的文件,用FutureTask.get在主线程阻塞等待结果在返回