Java 如何将HttpServletResponse传播到客户端?

Java 如何将HttpServletResponse传播到客户端?,java,spring,servlets,Java,Spring,Servlets,我们正在开发一个新的web应用程序,以取代我们公司常用的旧web应用程序。它们最终将拥有完全相同的API。我们首先要做的是测试新功能,让客户端向新的web应用发送请求,然后让新的web应用将其请求传播到旧的web应用,并将旧的web应用的http响应发送回客户端,这样从客户端的角度看,什么都没有改变 我想做的是获取我们从旧web应用程序返回的确切HttpServletResponse对象,并将其发送回新web应用程序的客户端。执行此操作的最佳方式是什么?我知道,一旦我能够检索到HttpServl

我们正在开发一个新的web应用程序,以取代我们公司常用的旧web应用程序。它们最终将拥有完全相同的API。我们首先要做的是测试新功能,让客户端向新的web应用发送请求,然后让新的web应用将其请求传播到旧的web应用,并将旧的web应用的http响应发送回客户端,这样从客户端的角度看,什么都没有改变

我想做的是获取我们从旧web应用程序返回的确切HttpServletResponse对象,并将其发送回新web应用程序的客户端。执行此操作的最佳方式是什么?我知道,一旦我能够检索到HttpServletResponse,我就可以将它设置为新web应用程序的REST控制器中函数API处理程序的参数,但检索它时遇到了问题

有没有办法通过Spring的RestTemplate检索HttpServlet响应?

您可以使用org.apache.commons.httpclient.httpclient

它具有public int-executeMethodHttpMethod方法,您可以在其中定义请求,并在检查状态为success后执行

您可以使用所有的HttpMethod方法

InputStream getResponseBodyAsStream()
Header[] getResponseHeaders();
并传递给您的回复。像这样

public static void main(String[] args) throws Exception {
    HttpClient client = new HttpClient();
    GetMethod method = new GetMethod("http://The old service url");
    method.addRequestHeader("X-Username", "user");
    method.addRequestHeader("X-Password", "password");
    // Execute the HTTP GET request
    int status = client.executeMethod(method);
    if(status == 200){
        InputStream in = method.getResponseBodyAsStream();
        OutputStream out=the out of your response
        IOUtils.copy(in, out);
        in.close();
        out.flush();
        out.close();
    }
}