使用http读取xml文件

时间:2009-08-24 14:42:52

标签: java xml

是否有人知道通过http快速读取xml文件? (例如,我的文件位于http://www.abc.com/file.xml)。我如何从Java应用程序中读取此文件

非常感谢所有帮助

由于 达明

3 个答案:

答案 0 :(得分:9)

使用java.net.URL获取InputStream

final URL url = new URL("http://www.abc.com/file.xml");
final InputStream in = new BufferedInputStream(url.openStream());
// Read the input stream as usual

为简洁起见,省略了异常处理和内容。

答案 1 :(得分:3)

Dave Ray的答案确实快速而简单,但它不适用于HTTP重定向,或者例如您必须通过需要身份验证的代理服务器。不幸的是,标准Java API的类(在java.net中)缺少某些功能,或者在这种情况下很难使用。

开源库Apache HttpClient可以自动处理重定向,并且可以轻松使用需要身份验证的代理服务器。

这是一个基本的例子:

HttpClient client = new HttpClient();
GetMethod method = new GetMethod("http://www.abc.com/file.xml");

int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
    System.err.println("Method failed: " + method.getStatusLine());
}

byte[] responseBody = method.getResponseBody();

答案 2 :(得分:0)

如果您打算使用W3C DOM并且对任何IO或HTTP详细信息不感兴趣,您可以执行以下操作:

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

...

final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder builder = factory.newDocumentBuilder();
final Document document = builder.parse("http://www.abc.com/file.xml");