From d3af06aee7c986a3756c55c0ad1e5acdb33d723c Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Thu, 2 Mar 2023 15:51:04 +0100 Subject: [PATCH] fix post support --- .../web/client/ProxyHttpServletRequest.java | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure-web/src/main/java/org/springframework/web/client/ProxyHttpServletRequest.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure-web/src/main/java/org/springframework/web/client/ProxyHttpServletRequest.java index 8c7a5f605..3cfda3309 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-azure-web/src/main/java/org/springframework/web/client/ProxyHttpServletRequest.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-azure-web/src/main/java/org/springframework/web/client/ProxyHttpServletRequest.java @@ -45,6 +45,7 @@ import java.util.stream.Collectors; import javax.servlet.AsyncContext; import javax.servlet.DispatcherType; +import javax.servlet.ReadListener; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; @@ -366,7 +367,39 @@ public class ProxyHttpServletRequest implements HttpServletRequest { @Override public ServletInputStream getInputStream() { - throw new UnsupportedOperationException(); + InputStream stream = new ByteArrayInputStream(this.content); + return new ServletInputStream() { + + boolean finished = false; + + @Override + public int read() throws IOException { + if (stream == null) { + return -1; + } + int readByte = stream.read(); + if (readByte == -1) { + finished = true; + } + return readByte; + } + + @Override + public void setReadListener(ReadListener readListener) { + // TODO Auto-generated method stub + + } + + @Override + public boolean isReady() { + return !finished; + } + + @Override + public boolean isFinished() { + return finished; + } + }; } /**