DANIEL VINICIUS BELUSSO
30/01/2023 11:04:22
Bom dia!
Estou com um problema quando envio algo por json e recebo sua resposta de volta, parece que no meio da manipulação desta resposta algo ocorre e faz com que o esp de reboot, tentei aumentar o tamanho da steck mas continuou.
Ao decodificar a resposta, consigo ver metade da mensagem até que o esp32 de reboot, segue alguns prints:
- Reboot:
Estou meio perdido com o que pode ser.
FERNANDO SIMPLICIO DE SOUSA
01/02/2023 11:05:57
Olá. A função c_str() é complicado de se trabalhar visto que, para converter um objeto String para um vetor String em C, este último tem que possuir o terminador NULL no final. Logo, é provavel que esteja sendo realocado em memória todos os bytes recebido via HTTP para um novo buffer interno criado por c_str().
É dai que vem o problema. Strings pequenas podem ser recebidas sem problema, porém, Strings longas já teremos problemas.
A forma mais fácil de resolver isso é imprimir diretamente o objeto String sem converte-lo para vetor String em C. Portanto, é só fazer isso e pronto.
if( httpCode == HTTP_CODE_OK ) { String payload = http.getString(); /** * Imprime pela Serial os bytes (JSON) que foram recebidos do servidor; */ Serial.println( payload ); }