为了对抗同源策略,我创建了一个 Java Servlet,它充当我的 AJAX 请求的代理服务器,以从其他位置获取 XML。
问题是任何 HTTP 错误响应都没有返回到我的客户端,而是被捕获为异常并被记录。
我如何强制 servlet 返回它找到的任何内容,无论是 404、500 等。
这是我日志中的一个示例
java.io.IOException: Server returned HTTP response code: 500 for URL:
或
java.io.IOException: Server returned HTTP response code: 403 for URL
:
这是我的代码:
String url = "http://www.test.com/test.xml";
URL kcim = new URL(url);
URLConnection kciconn = kcim.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(kciconn.getInputStream()));
String inputLine;
PrintWriter out = kciResponse.getWriter();
while ((inputLine = in.readLine()) != null)
{
//output to client
out.println(inputLine);
}
//close output stream
System.in.close();
in.close();
因此,总而言之,当我的 servlet 收到 HTTP 错误代码时,它最终会自行中断,导致我从 servlet 收到 HTTP 500 Server 错误,而不是来自被访问资源的真正 HTTP 代码。
如何阻止它破坏并强制 servlet 返回它返回的任何内容?
谢谢