0

我创建了一个 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?

难道我做错了什么?

欢迎任何建议!

4

0 回答 0