有人知道通過http讀取xml文件的快速方法嗎? (例如,我有一個文件位於http://www.abc.com/file.xml)。我如何從一個Java應用程序使用http讀取xml文件
所有幫助是極大的讚賞讀取這個文件
感謝 達明
有人知道通過http讀取xml文件的快速方法嗎? (例如,我有一個文件位於http://www.abc.com/file.xml)。我如何從一個Java應用程序使用http讀取xml文件
所有幫助是極大的讚賞讀取這個文件
感謝 達明
使用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
異常處理和東西省略簡潔。
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();
謝謝Jesper。容納xml的服務器在我的控制之下,所以我不必擔心重定向。感謝您的有效輸入,非常感謝 – Damien 2009-08-24 16:06:14
如果您計劃使用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");
謝謝爲解決方案戴夫,工作處理 – Damien 2009-08-24 16:05:29