Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Afinal, qual é o formato padrão enviado e recebido pelo protocolo http?

Me ficou uma dúvida sobre o formato em que as informações são enviadas e trazidas para/do servidor. São maps ou strings de maps? Pergunto isso porque, ao fazer comandos de postagem (http.post) é passado ao body do método um mapa diretamente. Mas quando as informações são trazidas elas vêm como uma string de map. Então seria isso? As informações vão como maps e voltam como strings? E para que servem os métodos "decode" e "encode" da biblioteca json?

Obrigado!

1 resposta
solução!

Oi Eduardo, tudo bem?

No protocolo HTTP, as informações são enviadas e recebidas em formato de strings. No entanto, é comum utilizar o formato JSON para representar essas informações.

Ao fazer uma requisição POST, você pode passar um mapa diretamente como corpo da requisição. Esse mapa será convertido para uma string JSON antes de ser enviado para o servidor. Por exemplo:

http.post(url, body: {'nome': 'Eduardo', 'idade': '25'});

Já ao receber as informações do servidor, elas geralmente vêm como uma string JSON. Para utilizá-las no Flutter, você pode utilizar o método jsonDecode para converter essa string em um mapa. Por exemplo:

var response = await http.get(url);
var data = jsonDecode(response.body);
print(data['nome']); // 'Eduardo'
print(data['idade']); // '25'

Os métodos decode e encode da biblioteca JSON servem para realizar a conversão entre objetos Dart e strings JSON. O método jsonDecode é utilizado para decodificar uma string JSON em um objeto Dart, enquanto o método jsonEncode é utilizado para codificar um objeto Dart em uma string JSON.

Espero ter ajudado.

Um abraço e bons estudos.