我创建了一个 Java Servlet 来充当我的网页的代理,以使用 AJAX 来获取 XML 的跨域请求。
servlet 使用参数进入服务器并返回它从存储 XML 的服务器接收到的任何内容。
我试图弄清楚为什么我的使用 URL 从具有 REST 的 Web Logic Server 获取 XML 的 Java Servlet 不起作用。但是,当我使用相同的 URL 并将其粘贴到浏览器(IE9、Firefox)中时,我会得到一个 XML 响应。
这是我的代码:
// build URL for specific request
String url = baseURL + urlParams;
//debug - check constructed URL
if (debug.equals("true"))
System.out.println("Constructed URL is " + url);
// fetch XML from URL
HttpClient client = new DefaultHttpClient();
HttpGet getXML = new HttpGet(url);
HttpResponse response = client.execute(getXML);
StatusLine statusLine = response.getStatusLine();
// Echo whatever headers you are interested in.
Header[] allHeaders = response.getAllHeaders();
resp.setStatus(statusLine.getStatusCode());
BufferedWriter bufferedWriter = null;
try
{
bufferedWriter = new BufferedWriter(resp.getWriter());
InputStream content = response.getEntity().getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(content,"UTF-8"));
String temp = null;
while((temp = bufferedReader.readLine()) != null)
{
//debug - check response body
if (debug.equals("true"))
System.out.println(temp);
bufferedWriter.write(temp);
bufferedWriter.newLine();
}
}
catch (Exception e)
{
resp.setStatus(500);
// handle the exception
}
finally
{
if(bufferedWriter != null)
{
bufferedWriter.flush();
bufferedWriter.close();
}
}
使用 apache.http.client 的Servlet 详细信息
网络 XML 2.3
Web 服务器是 Sun One 6.1 SP4(是的,我知道这是旧系统)
正如我之前所说,我检查了我的服务器日志以查看 servlet 使用的 URL,然后我将它复制到我的浏览器,并且确实在那个位置有一个 XML。
我使用的方法是否不适合 REST?
难道我做错了什么?
欢迎任何建议!