Flutter:未处理的异常:类型“_InternalLinkedHashMap<String, Object>”不是“String”类型的子类型

时间:2021-05-18 09:26:31

标签: json flutter jwt mapping httpresponse

在我的 flutter 项目中,我向后端服务器发出 API 请求,该请求返回生成的带有响应正文的 JWT 令牌。登录 API 方法要求应用程序向服务器提供 API 名称和参数名称(电子邮件和密码)。

标头将包含 content-type: application/json 和 Authorization: Bearer -some token- 。 而 JSON 正文需要采用这种形式:

{
 "name":"generateToken",
 "param":{
    "email":"afifzuhair@gmail.com",
    "pass":"afif123"
  }
}

login.dart 代码:

void _login(String email, String password) async {
setState(() {
  _isLoading = true;
});

var data, body, res, token;

data = {
  "name": "generateToken",
  "param": {"email": email, "pass": password},
};

// Send data package using Network class
res = await Network().authData(data, 'jwt-api'); //request

//response body
body = json.decode(res.body['response']);

//response header
token = json.decode(ascii.decode(base64
    .decode(base64.normalize(res.headers['Authorization'].split(".")[1]))));

print("Token : " + token);

if (body['status'] == 200) {
  // route to home screen when successful
  Navigator.pushReplacementNamed(context, routeScreenMenuAlt);
} else {
  _showMsg(body['message']);
}

setState(() {
  _isLoading = false;
});
}

我写的dart代码是形成json,但是遇到错误

<块引用>

未处理的异常:类型 '_InternalLinkedHashMap' 不是类型 'String' 的子类型

好像我的 JSON 编码是错误的。有人知道映射吗?

0 个答案:

没有答案