2009-08-24 59 views

回答

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 

異常處理和東西省略簡潔。

+0

謝謝爲解決方案戴夫,工作處理 – Damien 2009-08-24 16:05:29

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

謝謝Jesper。容納xml的服務器在我的控制之下,所以我不必擔心重定向。感謝您的有效輸入,非常感謝 – Damien 2009-08-24 16:06:14

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