0

我正在创建 jUnit 测试来检查为客户端应用程序获取 XML 的代理 servlet 是否在没有损坏或任何更改的情况下返回它们。

在我的 jUnit 类中,我有一个 doGet 方法,它执行我对代理 servlet 的 HTTP 获取请求,它在最后传递一个带有 GET 参数的 URL

应将 XML 响应接收回客户端 (jUnit)。

protected String doGet() throws IOException, ParserConfigurationException, SAXException
{
    String requestURL = url + params;
    System.out.println(requestURL);
    // fetch XML from URL
        System.out.println(requestURL);
    
        URL url = new URL(requestURL);
        HttpURLConnection connection =
            (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setRequestProperty("Accept", "application/xml");

        InputStream xml = connection.getInputStream();
        System.out.println(connection.getResponseMessage());
        System.out.println(connection.getResponseCode());

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        
        org.w3c.dom.Document text = db.parse(xml);
        System.out.print(text.getNodeValue());
        return text.toString();
}

这是我的输出:

好的

200

空值

[#文档:空]

我正在尝试获取作为 XML 文档的 HTTP 响应的字符串值,因此我可以将它与另一个字符串进行比较以确保它是正确的。

我如何获得这个字符串值?

谢谢

4

1 回答 1

0

使用来自 Apache.IO.Utils Common Lib 的这段优雅的代码解决了这个问题

org.apache.commons.io.IOUtils.toString(new URL(requestURL));
于 2013-04-25T08:17:45.227 回答