Всем будущим искателям с такой же проблемой следует добавить ответ Джо Конвея выше.в шаблоне html измените
<form action="http://127.0.0.1:8888/chat" method="POST">
на
<form action="http://127.0.0.1:8888/chat" method="POST" enctype="application/x-www-form-urlencoded">
, затем добавьте
...
@override
List<ContentType> acceptedContentTypes = [ContentType("application", "x-www-form-urlencoded")];
...
к вашему контроллеру и затем к сериализуемому классу в моем классе чата case.измените строку на список. Это будет выглядеть следующим образом:
class Chat extends Serializable{
List<String> id;
List<String> name;
@override
void readFromMap(Map<String, dynamic> map) {
id = map[0] as List<String>;
name = map[1] as List<String>;
}
@override
Map<String, dynamic> asMap() {
return {
'id': id[0],
'name': name[1]
};
}
}
и, наконец, изменится, когда вы отправите метон в вашем контроллере.
@Operation.post()
Future<Response> createProject(@Bind.body() Chat chat) async {
// POST /project
print("post");
Map<String, List<String>> body = await request.body.decode();
final name =body["name"][0] ;
print("\n\n 1) body ==> $body");
print("\n\n 1) name ==> $name");
return Response.ok({"key": "value"});
}
Я искренне надеюсь, что это поможет кому-то в будущемта же проблема.