Existem diversas maneiras de trabalhar para resolver essas situações, mas as que utilizei foram as seguintes:
// método utilizando a API httpclient da Apache
protected InputStream getContentFromUrl(String nomeServico, String parametros) throws Exception {
HttpMethod method = new GetMethod(this.getUrl(nomeServico, parametros));
HttpClient client = new HttpClient();
int statusCode = client.executeMethod(method);
if (statusCode != HttpStatus.SC_OK) {
throw new Exception("Erro ao tentar recuperar conteudo do XML do serviço "+nomeServico);
}
InputStream stream = method.getResponseBodyAsStream();
stream.close();
return stream;
}
// método utilizando a API nativa URL, HttpURLConnection
protected InputStream getContentFromUrl(String nomeServico, String parametros) throws Exception {
InputStream is = null;
URL url = new URL(this.getUrl(nomeServico, parametros));
is = url.openStream();
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDefaultUseCaches(true);
conn.setUseCaches(true);
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "text/xml; charset=UTF-8");
InputStream is = null;
try {
is = conn.getInputStream();
} catch (Exception e) {
e.printStackTrace();
is = conn.getErrorStream();
}
return is;
}
Segue links de referência:
http://download.oracle.com/ javase/tutorial/networking/ urls/readingWriting.html
http://download.oracle.com/ javase/tutorial/networking/ urls/readingURL.html
http://download.oracle.com/
Nenhum comentário:
Postar um comentário