Olá pessoal,

sou iniciante no mundo do Arduino. Estou desenvolvendo um sensor de temperatura que se conecta a um WebService que tenho feito em Java.

O protótipo funciona, o webservice (testado com Postman) funciona, porém....

ao enviar os dados do Arduino em JSON para o webservice, não chega nada lá no webservice, ele se conecta, eu vejo ele se conectado no servidor mas os dados não vem.

já tentei usar a biblioteca Arduino Json ou imprimir direto e nada.

Segue como envio o JSON pro webservice

    client.println("POST http://192.168.11.174:8080/api/lesensor HTTP/1.1");
    client.println("Host: http://192.168.11.174:8080");
    client.println("Connection: close");
    client.println("User-Agent: Arduino/1.0");
    client.println("Content-Type: application/json\n\n");
    client.print("{\"temperatura\":");
    client.print(Temperatura);
    client.print(", \"umidade\":");
    client.print(Umidade);
    client.println("}");

    client.println();
    client.println();

    a saida é essa: {"temperatura":27.00,"umidade":34.00}  no Webservice ele espera exatamente isso, eu mandando por cUrl ou postman ou Angular exatamente essa msg do arudino, o WebSerice recebe e processa, ou seja, eu descarto o erro no servidor.

Alguém já passou por algo semelhante e pode me dar um help?

PS: Enviando os dados por GET, direto na URL no Arduino para o WS, funciona sem problemas

grato desde já

att,


FM

Exibições: 1943

Responder esta

Respostas a este tópico

Você já testou qual o valor da variável "Temperatura" e da variável "Umidade" para ver ser elas estão vindo no formato correto?

A aplicação espera um formato fixo ou variável?

Imprima o valor dessas variáveis na Serial para saber se elas estão vindo corretamente:

Serial.println(Temperatura);

Serial.println(Umidade);

Ou melhor ainda, Mostre na Serial toda a linha para saber se ele está montando o comando corrretamente:

  Serial.print("{\"temperatura\":");
  Serial.print(Temperatura);
  Serial.print(", \"umidade\":");
  Serial.print(Umidade);
  Serial.println("}");

  delay(3000);

Olá Jose Augusto,

quando mando imprimir na Serial vem os dados certinhos, inclusive já copiei da Serial e coloquei no Postman e funciona certo.

{ "temperatura": 23.00, "umidade": 37.00}

já coloquei os valores como String também e não funcionou

Obrigado Almir,

to estudando o material aqui

Vc disse que no método Get tudo ocorre bem e que no método post não vai

No método Get é mais fácil porque vc manda as variáveis junto na url, mas no método post há algumas exigências que vc não cumpriu
Dá uma googlada em tais exigências e principalmente no que se refere Ao envio de informação a respeito da quantidade de caracteres no post

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço