package aplicacao.service;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Iterator;
import java.util.Properties;
import banco.modelo.Cep;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.Annotations;
import com.thoughtworks.xstream.io.xml.DomDriver;
@SuppressWarnings("deprecation")
public class CepService {
@SuppressWarnings("rawtypes")
public Cep getEndereco(String cep) {
// a string da url
String urlString = "http://cep.republicavirtual.com.br/web_cep.php";
// os parametros a serem enviados
Properties parameters = new Properties();
parameters.setProperty("cep", cep);
parameters.setProperty("formato", "xml");
// o iterador, para criar a URL
Iterator i = parameters.keySet().iterator();
// o contador
int counter = 0;
// enquanto ainda existir parametros
while (i.hasNext()) {
// pega o nome
String name = (String) i.next();
// pega o valor
String value = parameters.getProperty(name);
// adiciona com um conector (? ou &)
// o primeiro � ?, depois s�o &
urlString += (++counter == 1 ? "?" : "&") + name + "=" + value;
}
try {
// cria o objeto url
URL url = new URL(urlString);
// cria o objeto httpurlconnection
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// seta o metodo
connection.setRequestProperty("Request-Method", "GET");
// seta a variavel para ler o resultado
connection.setDoInput(true);
connection.setDoOutput(false);
// conecta com a url destino
connection.connect();
// abre a conex�o pra input
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
// le ate o final
StringBuffer newData = new StringBuffer();
String s = "";
while (null != ((s = br.readLine()))) {
newData.append(s);
}
br.close();
// Controi classe a partir do XML
XStream xstream = new XStream(new DomDriver());
Annotations.configureAliases(xstream, Cep.class);
xstream.alias("webservicecep", Cep.class);
Cep endereco = (Cep) xstream.fromXML(newData.toString());
return endereco;
} catch (Exception e) {
return null;
}
}
}