2009-08-24 18 views

Odpowiedz

9

Zastosowanie java.net.URL uzyskać InputStream: obsługę

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

wyjątków i rzeczy pominięte dla zwięzłość.

+0

Thanks dla rozwiązania dave, pracował uczta – Damien

3

Odpowiedź Dave'a Ray'a jest rzeczywiście szybka i łatwa, ale nie działa dobrze z przekierowaniami HTTP lub jeśli na przykład musisz przejść przez serwer proxy, który wymaga uwierzytelnienia. Niestety, standardowe klasy Java API (w java.net) nie mają pewnej funkcjonalności lub są trudne w użyciu w takich okolicznościach.

Biblioteka open source Apache HttpClient może automatycznie obsługiwać przekierowania i ułatwić pracę z serwerami proxy, które wymagają uwierzytelnienia.

Oto prosty przykład:

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

Dzięki Jesper. Serwer, w którym znajduje się plik xml, jest pod moją kontrolą, więc nie muszę się martwić o przekierowania. Dziękujemy jednak za wasz poprawny wkład, który jest bardzo doceniany – Damien

0

Jeśli planujesz używać W3C DOM i nie są zainteresowani w każdym z IO lub HTTP szczegóły można wykonać następujące czynności:

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"); 
Powiązane problemy