`

request.getInputStream() 只能读一次的解决方法

    博客分类:
  • Java
阅读更多
我们知道request.getInputStream()只能读一次,如果下一次读,就会报告Stream closed的错误。下面是解决方法。

InputStream input =  request.getInputStream();  
                  
ByteArrayOutputStream bytebuffer= new ByteArrayOutputStream();  
byte[] buffer = new byte[1024];  
int len;  
while ((len = input.read(buffer)) > -1 ) {  
    bytebuffer.write(buffer, 0, len);  
}  
bytebuffer.flush();                
  
InputStream stream1 = new ByteArrayInputStream(bytebuffer.toByteArray());  




输出request.getInputStream()内容的方法如下:

StringBuffer buffer = new StringBuffer();
		try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
			String line = "";
			while ((line = reader.readLine()) != null)
				buffer.append(line);
		}

		logger.info("接收xml数据:" + buffer);
分享到:
评论

相关推荐

    浅谈request.getinputstream只能读取一次的问题

    然而,一个重要的概念是,`getInputStream()`返回的`ServletInputStream`只能被读取一次,这是由其内部实现机制决定的。 首先,我们需要了解Java的`InputStream`类。`InputStream`是所有字节输入流的基类,它定义了...

    浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题

    "浅谈图片上传利用request.getInputStream()获取文件流时遇到的问题" 本文讨论了使用request....本文讨论了使用request.getInputStream()获取文件流时遇到的问题,并提供了两种获取文件流的方式和解决问题的方法。

    postman调试接口工具

    在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-...

    springboot 解决InputStream只能读取一次的问题

    这样,我们就成功地解决了Spring Boot中`InputStream`只能读取一次的问题,使得我们可以多次读取并处理请求数据,无论是用于文件上传、消息解析还是其他需要多次读取的场景。在实际项目中,根据具体需求,可能还需要...

    完美解决request请求流只能读取一次的问题

    解决request请求流只能读取一次的问题,我们可以使用自定义的HttpServletRequestWrapper,覆写getInputStream()和getReader()方法,从而实现流的重复读取。这可以在SpringBoot项目中使用Filter拦截器对所有请求流中...

    sevlet生命周期,request web.xml 及ServletContext总结

    否则,将在第一次请求时加载。 2. **初始化**: 在Servlet实例创建后,容器会调用`init()`方法。这是Servlet准备处理请求前进行初始化工作的地方,例如配置连接、读取配置信息等。在`init()`方法中,Servlet可以...

    Socket中InputStream的read方法的阻塞特性

    Socket中的InputStream的`read`方法是Java网络编程中一个核心的概念,它在处理客户端与服务器之间的数据传输时起着至关重要的作用。`read`方法的阻塞特性是其设计的一个重要特点,也是理解多线程和并发编程的关键点...

    对Servlet 中 request.setEncoding("utf-8")的分析

    在本例中,`request`对象实际上是由Tomcat提供的`RequestFacade`类的一个实例,这个类实现了`HttpServletRequest`接口,起到了一个代理的作用,允许我们调用标准的Servlet API方法。 2. **RequestFacade与Request...

    解决sun.misc.URLClassPath自动Debug缘故

    ### 解决sun.misc.URLClassPath自动Debug的问题 #### 背景介绍 在进行Java项目的开发过程中,尤其是使用集成开发环境(IDE)如Eclipse时,开发者可能会遇到一个较为罕见但又令人困惑的问题:在调试模式下启动项目时...

    Java图片处理ImageIO.read()问题

    本篇将详细探讨`ImageIO.read()`方法的相关知识点,以及如何解决可能遇到的问题。 `ImageIO`类位于`javax.imageio`包下,它是Java图像I/O框架的核心类。`ImageIO.read()`方法主要用于从各种输入流中读取图像数据,...

    spring-resource

    除了基本的读取操作,`Resource`还支持其他方法,如`exists()`检查资源是否存在,`isReadable()`判断是否可读,`getURI()`获取资源的URI,`getFileName()`获取文件名等,这些都是在处理资源时可能用到的功能。...

    Java 从网络中读取图片 转换成Base64字符串

    在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...

    http request 解析

    在Java中,你可以创建一个URL对象,然后通过`openConnection()`方法得到`HttpURLConnection`实例,如下所示: ```java URL url = new URL("http://example.com"); HttpURLConnection connection = ...

    Request对象主要方法

    在深入探讨`Request`对象的主要方法之前,我们首先需要理解`Request`对象的基本概念及其在Web开发中的核心作用。`Request`对象是Web应用程序中处理客户端请求的关键组件,它封装了来自客户端的所有请求数据,包括但...

    rxtx-2.1.7.jar串口通信gnu.io包不存在问题

    标题提到的"rxtx-2.1.7.jar"是RXTX库的一个版本,它包含了`gnu.io`包,解决了缺少此包的问题。这个JAR文件是RXTX的核心组件,包含了实现串口通信所需的所有类和方法。导入这个JAR到你的项目类路径中,就可以使用RXTX...

    ServletRequest过滤程序

    提供了ServletRequest过滤程序,重新构造对象内容,并有效规避request.getParameter()、request.getInputStream()冲突的问题,同时提供了对跨站脚本攻击XSS和SQL注入的过滤程序。

    ognl源码包值得用一用

    很好的xwork的资源包public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { DiskFileItemFactory factory = new DiskFileItemFactory(); ...

    崔希凡JavaWeb笔记day22-day24

    - **表单的method必须是POST**: GET方式无法传输大量数据或二进制数据,因此文件上传只能使用POST方法。 - **表单的enctype必须是multipart/form-data**: 这是为了支持文件上传功能。 - **表单中需要添加file表单...

    request的实例源码

    `HttpServletRequest`接口是Java Servlet API的一部分,由Servlet容器(如Tomcat)创建并传递给Servlet的`service()`方法或`doGet()`, `doPost()`等特定方法。它包含了客户端的所有请求信息,如请求URL、请求参数、...

    使用Servlet处理一个上传的文件

    本篇文章将详细介绍如何使用Servlet处理一个上传的文件,包括使用`getReader()`、`getInputStream()`以及`getPart()`和`getParts()`方法。 首先,了解文件上传的基本原理。在HTML表单中,我们需要设置`enctype=...

Global site tag (gtag.js) - Google Analytics