Flutter/Dart URI 没有转义参数中的冒号或斜杠 "https://"
Flutter/Dart Uri not escaping colon or slash "https://" in params
有没有办法在参数中转义冒号和正斜杠?
Uri.https('example.com', '/api', {
'response_type': 'code',
'client_id': 'id',
'redirect_uri': 'https://www.google.com',
})
上面变成这样:https%3A%2F%2Fwww.google.com
编码不起作用
final redirect = Uri.encodeFull('https://www.google.com');
final uri = Uri.https('example.com', '/api', {'redirect_uri': redirect});
print(redirect); // https://www.google.com
print(uri.query); // redirect_uri=https%3A%2F%2Fwww.google.com
您提供给该函数的任何内容都是经过 urlencode 编码的,因为 HTTP.
在您的场景中使用它之前,您似乎需要对其进行 urldecode。这应该有助于
解码 URLEncoded 字符串的方法如下
print(Uri.decodeFull(uri.query));
有没有办法在参数中转义冒号和正斜杠?
Uri.https('example.com', '/api', {
'response_type': 'code',
'client_id': 'id',
'redirect_uri': 'https://www.google.com',
})
上面变成这样:https%3A%2F%2Fwww.google.com
编码不起作用
final redirect = Uri.encodeFull('https://www.google.com');
final uri = Uri.https('example.com', '/api', {'redirect_uri': redirect});
print(redirect); // https://www.google.com
print(uri.query); // redirect_uri=https%3A%2F%2Fwww.google.com
您提供给该函数的任何内容都是经过 urlencode 编码的,因为 HTTP. 在您的场景中使用它之前,您似乎需要对其进行 urldecode。这应该有助于
解码 URLEncoded 字符串的方法如下
print(Uri.decodeFull(uri.query));