颤动中的串联字符串会添加“”

时间:2020-08-14 16:45:07

标签: string flutter dart

这是一个愚蠢的问题,但我似乎无法弄清楚。我正在构建一个与API通信的Flutter应用,为了使用户通过身份验证,它会发送令牌。 每当用户登录时,我都会将令牌保存在“共享首选项”中,然后在我发出请求时,将令牌添加到标头中,在这种情况下,我需要在URL中使用它。 但是,每当我连接字符串时:服务器url和令牌都会在令牌中添加额外的“”。像这样:

http://10.0.2.2:64342/chatHub?access_token="token-value"

代替

http://10.0.2.2:64342/chatHub?access_token=token-value

代码如下:

 var preferences = await SharedPreferences.getInstance();
 token = preferences.getString(token_key);
 var url = '$serverURl?access_token=$token';

2 个答案:

答案 0 :(得分:2)

据我了解您的问题,我想回答一下。
那不可能!

  var serverURl = 'http://10.0.2.2:64342/chatHub';
  var token = 'token-value';
  var url = '$serverURl?access_token=$token';
  print(url);

它只是打印正确的一个!
您可以检查存储在SharedPreferences中的字符串!那也许带引号。

答案 1 :(得分:0)

好的,我知道了。由于我只从API发送令牌。我收到带有“”的邮件。 相反,我现在发送带有令牌的json,例如:{“ token”:“ token_value”},然后对其进行解码以获取实际值。因此,当我存储共享首选项时,它不会保留“”。

所以在后端:

return Ok(new {token = generatedToken});

和飞镖

var tokenJson = json.decode(response.body);
var token = tokenJson['token'];
preferences.setString(token_key, token);

感谢所有提供帮助的人:)