This is my all code of class WebClient:
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart';
import 'package:http_interceptor/http_interceptor.dart';
import 'package:owlwee/Models/Cartao.dart';
import 'package:owlwee/Models/Cliente.dart';
import 'package:owlwee/Models/ClienteDto.dart';
final Client client =
HttpClientWithInterceptor.build(interceptors: [LoggingInterceptor()]);
const String baseUrl = 'http://xxxxxxxxxxxxxx:8080'; // LEROMA
const String baseUrlCheckIn = 'http://xxxxxxxxxxxxx:8081'; // LEROMA
class LoggingInterceptor implements InterceptorContract {
@override
Future<RequestData> interceptRequest({RequestData data}) async {
print('Request');
print('Headers: ${data.headers}');
print('body: ${data.body}');
return data;
}
@override
Future<ResponseData> interceptResponse({ResponseData data}) async {
print('Status ${data.statusCode}');
print('Headers: ${data.headers}');
print('body: ${data.body}');
return data;
}
}
saveClient(Cliente cliente) async {
final Map<String, dynamic> clienteMap = {
"nome": cliente.nome,
"email": cliente.email,
"senha": cliente.senha,
"celular": cliente.celular,
};
final String clientJson = jsonEncode(clienteMap);
client.post(baseUrl + '/usuario',
headers: {'Content-type': 'application/json', 'password': 'admin'},
body: clientJson);
final Response response = await client.get(baseUrl + '/usuario/id');
final List<dynamic> decodedJson = jsonDecode(response.body);
final List<ClienteDto> dataUser = List();
for (Map<String, dynamic> clienteJson in decodedJson) {
final ClienteDto cliente = ClienteDto(
clienteJson['id'],
clienteJson['nome'],
);
dataUser.add(cliente);
print(dataUser);
}
return dataUser;
}
And this is answer of console:
√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Syncing files to device Android SDK built for x86...
I/flutter (15631): Request
I/flutter (15631): Headers: {Content-type: application/json; charset=utf-8, password: admin}
I/flutter (15631): body: {"nome":"Hudson","email":"[email protected]","senha":"123456","celular":21987987987}
I/flutter (15631): Request
I/flutter (15631): Headers: {}
I/flutter (15631): body:
I/flutter (15631): Status 400
I/flutter (15631): Headers: {connection: close, content-type: application/json, date: Wed, 05 Feb 2020 00:38:37 GMT, transfer-encoding: chunked}
I/flutter (15631): body: {"timestamp":"2020-02-05T00:38:37.040+0000","status":400,"error":"Bad Request","message":"Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: \"id\"","trace":"org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: \"id\"\r\n\tat org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:133)\r\n\tat org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)\r\n\tat org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)\r\n\tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(Invocable
E/flutter (15631): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>'
E/flutter (15631): #0 saveClient (package:owlwee/http/webclient.dart:83:23)
E/flutter (15631): <asynchronous suspension>
E/flutter (15631): #1 _CadastroState.build.<anonymous closure> (package:owlwee/Views/Cadastro.dart:192:25)
E/flutter (15631): #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
E/flutter (15631): #3 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:789:36)
E/flutter (15631): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (15631): #5 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486:11)
E/flutter (15631): #6 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:264:5)
E/flutter (15631): #7 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:236:7)
E/flutter (15631): #8 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter (15631): #9 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:222:20)
E/flutter (15631): #10 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (15631): #11 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (15631): #12 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (15631): #13 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (15631): #14 _rootRunUnary (dart:async/zone.dart:1138:13)
E/flutter (15631): #15 _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter (15631): #16 _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
E/flutter (15631): #17 _invoke1 (dart:ui/hooks.dart:273:10)
E/flutter (15631): #18 _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5)
E/flutter (15631):
I/flutter (15631): Status 201
I/flutter (15631): Headers: {content-type: application/json, location: http://192.168.1.9:8080/usuario/9, date: Wed, 05 Feb 2020 00:38:37 GMT, transfer-encoding: chunked}
I/flutter (15631): body: {"id":9,"nome":"Hudson"}
Is that what you asked?