Pessoal estou tentando acessar um web service de previsão de tempo que retorna um xml como resposta, ao digitar isso no browser vc´s entenderão o funcionamento: http://www.google.com/ig/api?weather=Vitoria,Espirito Santo,Brazil&hl=pt-br
O problema é o seguinte, quero fazer a requisição e salvar o retorno em um arquivo XML mas o meu código está recebendo um erro 400 do HTTP server como resposta, ai vai o meu código:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class PrevisaoDeTempo
{
private String cidade;
private String estado;
private String pais;
public static void main(String[] args)
{
PrevisaoDeTempo tp = new PrevisaoDeTempo("Vitoria","Espirito Santo", "Brazil");
try {
tp.requisitaPrevisao();
} catch (IOException e) {
javax.swing.JOptionPane.showMessageDialog(null, e.getMessage());
}
}
PrevisaoDeTempo(String cidade, String estado, String pais)
{
this.cidade = cidade;
this.estado = estado;
this.pais = pais;
}
public void requisitaPrevisao() throws IOException
{
String endereco = "http://www.google.com/ig/api?weather="+this.cidade+","+this.estado+","+this.pais+"&hl=pt-br";
HttpURLConnection conexao = null;
URL url = new URL(endereco);
conexao = (HttpURLConnection)url.openConnection();
conexao.setRequestProperty("Request-Method","GET");
conexao.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
conexao.disconnect();
File f = new File("D:/teste.xml");
FileWriter fw = new FileWriter(f);
fw.write(br.toString());
br.close();
fw.flush();
fw.close();
}
private void setCidade(String cidade) {
this.cidade = cidade;
}
private String getCidade() {
return cidade;
}
private void setEstado(String estado) {
this.estado = estado;
}
private String getEstado() {
return estado;
}
private void setPais(String pais) {
this.pais = pais;
}
private String getPais() {
return pais;
}
}
Alguém pode me ajudar com isso, não entendo quase nada sobre essa requisição HTTP. Obrigado pessoal.
Ah e aproveitando, tem alguma idéia de como faço pra trocar ? Será que o metodo replace da classe String funciona ? Acho que o melhor lugar para se fazer isso é no construtor mesmo né ? T+