2009-08-24 16 views

risposta

9

Usa java.net.URL per ottenere un InputStream: movimentazione

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

Eccezione e roba omessa per brevità.

+0

Grazie per la soluzione dave, ha funzionato a meraviglia – Damien

3

La risposta di Dave Ray è davvero semplice e veloce, ma non funzionerà bene con i reindirizzamenti HTTP o se, per esempio, si deve passare attraverso un server proxy che richiede l'autenticazione. Sfortunatamente, le classi dell'API Java standard (in java.net) mancano di alcune funzionalità o sono difficili da usare in tali circostanze.

La libreria open source Apache HttpClient può gestire i reindirizzamenti automaticamente e semplificare il lavoro con i server proxy che richiedono l'autenticazione.

Ecco un esempio di base:

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

Grazie Jesper. Il server che ospita l'xml è sotto il mio controllo, quindi non devo preoccuparmi dei reindirizzamenti. Grazie per l'input valido, è molto apprezzato – Damien

0

Se si pensa di utilizzare il W3C DOM e non sei interessato ad uno degli IO o dettagli HTTP è possibile effettuare le seguenti operazioni:

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