Olá pessoal, sou novo no fórum e estou com uma grande duvida sobre como consumir dados de uma URL, eu já estou a 1 semana pesquisando sobre isso no Google, já passei por vários sites e usei varias bibliotecas e mesmo assim, não consigo assimilar o conhecimento.
Estou tentando fazer com que uma aplicação Java consuma dados de uma XML, no caso é um Arduíno que esta gerando a XML, se eu vou no browser, consigo acessar normalmente através do link 10.0.0.106 e ver a XML, mas não consigo fazer com que o Java consuma, o arduino gera a XML e o Java consome… é uma XML bem simples
Soft
Temperatura tipo=“double” 30.90 /Temperatura
UmidadeAr tipo=“double” 58.60 /UmidadeAr
UmidadeSolo tipo=“double” 0 /UmidadeSolo
logs 0 /logs
/Soft
Edit: não estou conseguindo fazer com que a XML apareça aqui no forum
Bibliotecas que eu ja tentei usar: Jersey, JAX-RS, Stream, SAX, httpApache
Esse é o meu código atual:
public void ConsomeXML() throws MalformedURLException, IOException{
URL url = new URL("http://10.0.0.106");
HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
conexao.setRequestMethod("GET");
conexao.setRequestProperty("Accept", "application/xml");
if(conexao.getResponseCode() != 200){
JOptionPane.showMessageDialog(null, "Erro ao comunicar-se com o Arduino\nErro: "+conexao.getResponseCode());
}
JOptionPane.showMessageDialog(null, "Content-type:"+conexao.getContentType());
BufferedReader leitor = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
linha = leitor.readLine();
while(linha != null){
String resultado = linha+"\n";
linha = leitor.readLine();
this.setLinha(linha);
}
conexao.disconnect();
}
Mas quando eu executo, ele cai naquela condição
if(conexao.getResponseCode() != 200){
JOptionPane.showMessageDialog(null, "Erro ao comunicar-se com o Arduino\nErro: "+conexao.getResponseCode());
}
e me retorna o erro -1
e na saida aparece, java.io.IOException: Invalid Http response
a XML é do tipo REST
Esse código atual serve apenas para ler a XML, pegar todos os dados e criar uma XML no computador, o método de criação não esta descrito no tópico