我有基本身份验证的Java代码,我想转换do dart。这是Java代码
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("user_id", (Number) userId);
jsonObject.addProperty("access_token", userToken);
try {
String encodeToString = Base64.encodeToString(jsonObject.toString().getBytes(Key.STRING_CHARSET_NAME), 2);
StringBuilder sb = new StringBuilder();
sb.append("Basic ");
sb.append(encodeToString);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
我做得扑朔迷离,但结果却不一样。这就是我在flutter
中所做的事情。
String basicAuth = 'Basic ' + base64Encode(utf8.encode('${box1.get('user_id')}:${box1.get('user_token')}'));
我想我在Java中JsonObject
做错了。也许这部分让我感到困惑。
Base64.encodeToString(jsonObject.toString().getBytes(Key.STRING_CHARSET_NAME), 2);
在我的代码中,两个${box1.get('user_id')} and ${box1.get('user_token')}
都是字符串,我的意思是我没有得到json。
答案 0 :(得分:0)
尝试一下
String credentials = userId + ":" + access_token;
Codec<String, String> strToBase64 = utf8.fuse(base64);
String authEncoded = strToBase64.encode(credentials);
String basicAuth = = 'Basic ' + authEncoded;