【问题标题】:read xml file using http使用http读取xml文件
【发布时间】:2009-08-24 14:42:51
【问题描述】:

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

非常感谢所有帮助

谢谢 达米安

【问题讨论】:

    标签: java xml


    【解决方案1】:

    使用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
    

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

    【讨论】:

      【解决方案2】:

      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();
      

      【讨论】:

      • 谢谢杰斯珀。存放 xml 的服务器在我的控制之下,所以我不必担心重定向。感谢您的有效输入,非常感谢
      【解决方案3】:

      如果您打算使用 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");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-09
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 2019-02-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多