在Spring引导中接收HTTP流

在Spring引导中接收HTTP流,spring,spring-boot,http-headers,http-streaming,Spring,Spring Boot,Http Headers,Http Streaming,我想在SpringBoot中接收HTTP流,但HttpServletRequest的InputStream似乎不是一个无止境的HTTP流,它只包含第一个HTTP主体的内容 我想在SpringBoot中处理一个chuncked HTTP流,该流上不时会有一些值字符串 目前,我在控制器中尝试了类似的方法: @Override public void test(HttpServletRequest request, HttpServletRes

我想在SpringBoot中接收HTTP流,但HttpServletRequest的InputStream似乎不是一个无止境的HTTP流,它只包含第一个HTTP主体的内容

我想在SpringBoot中处理一个chuncked HTTP流,该流上不时会有一些值字符串

目前,我在控制器中尝试了类似的方法:

  @Override
    public void  test(HttpServletRequest request,
                      HttpServletResponse response) {
        System.out.println("StreamStart");
        try {



            byte[] buffer = new  byte[1024];
            while(true){
                int len = request.getInputStream().read(buffer);
                 if(len!=-1) {
                     System.out.println("Len: " + len);
                     System.out.println(new String(buffer));
                 }
                 Thread.sleep(500);
            }
        }
        catch(Exception x){
            x.printStackTrace();
        }

        System.out.println("StreamEnd");

    }
但是,头之后的第一个请求正文起作用,但第二个请求正文没有出现在我的控制器中

SpringBoot是否取消连接或流?
我可以访问完整的HTTP输入流以从中获取我的值吗?

也许多部分请求对您有用? 这样,您可以接收数据的多个部分 例如:


好主意,多部分是否需要预先定义的内容长度?我需要一些没有预定义内容长度的流媒体,因为客户端正在通过HTTP流媒体将数据推送到服务器,我不知道内容长度。我想在服务器和客户端之间重新实现无休止的流媒体,我认为使用multipart是不可能的。我已经使用它作为从客户端到服务器的流媒体,这里有一个很好的描述如何做到这一点。对于内容长度,可以将属性设置为大值。谢谢,但是我可以把HTTP头内容len修改为一个大的数字,然后它就可以作为流媒体工作了吗?我不能想象那样不,不是那样。您需要一个读取多部分流的服务器和发送它的客户端。对于服务器部件
 @PostMapping("/upload")
public void uploadStream(@RequestParam MultipartFile[] multipartFiles){
    for(MultipartFile multipartFile:multipartFiles){
        try {
            InputStream inputStream = multipartFile.getInputStream();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}