Olá!
Enquanto estava fazendo as atividades das aulas eu notei uma coisa, eu não consigo testar os erros que estão sendo solicitados, porque sempre que rodo o meu código, caso a senha esteja errada o meu vscode trava a aplicação e dispara o seguinte error
Exception has occurred. SocketException (SocketException: OS Error: Connection refused, errno = 111, address = 192.168.1.66, port = 36171).
Então eu nunca consigo disparar os erros de status, além disso eu não consigo fazer uma operação de transferência com valores vazios porque o flutter automaticamente dispara um.
Exception caught by gesture Null check operator used on a null value.
Assim também não consigo disparar o erro de transação falha, pois a aplicação não permite, como eu poderia resolver esses dois problemas? ou adaptar o código para trabalhar com esses erros?
meu código da parte de save
import 'dart:convert';
import 'package:bytebank_version2/Model/Transaction.dart';
import 'package:bytebank_version2/Http/web_client.dart';
import 'package:http/http.dart';
class TransactionWebClient {
Future<List<Transaction>> findAll() async {
final Response response =
await client.get(baseUrl).timeout(Duration(seconds: 5));
List<dynamic> decodedJson = jsonDecode(response.body);
return decodedJson
.map((dynamic json) => Transaction.fromJson(json))
.toList();
;
}
Future<Transaction> save(Transaction transaction, String password) async {
final String transactionJson = jsonEncode(transaction.toJson());
final Response response = await client.post(baseUrl,
headers: {
'Content-type': 'application/json',
'password': password,
},
body: transactionJson);
if (response.statusCode == 400) {
throw Exception('There was a error submiting the transaction');
}
if (response.statusCode == 401) {
throw Exception('Authentication Failed');
}
return Transaction.fromJson(jsonDecode(response.body));
}
}