我们正在开发一个新的Web应用程序来替换我们公司通常使用的旧应用程序。它们最终都将拥有完全相同的API。我们最初想要做的是通过让客户端向新的Web应用程序发送请求来测试新功能,然后让我们的新Web应用程序将他们的请求传播到旧的Web应用程序并将旧的Web应用程序的http响应发送回我们的客户(从客户的角度来看,没有任何改变)。
我想要做的是获取我们从旧的Web应用程序返回的确切的HttpServletResponse对象,并将其发送回新的Web应用程序的客户端。执行此操作的最佳方式是什么?我知道,一旦我可以检索HttpServletResponse,我就可以将它设置为我们在新的Web应用程序的REST控制器中作为我们的函数(API处理程序)的参数,但是我在检索它时遇到了问题。
有没有办法通过Spring的RestTemplate检索HttpServlet响应?
答案 0 :(得分:0)
您可以使用org.apache.commons.httpclient.HttpClient
它有public int executeMethod(HttpMethod method)
,您可以在其中定义请求,并在检查状态为成功后
您可以使用所有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();
}
}