我有一种情况,我需要将Map
转换为查询字符串(在第一个?
之后)。例如,如果我有以下 map :
Map json = {
"email": eml,
"password": passwd
};
还有一个基本URL:
String baseURL = "http://localhost:8080/myapp";
然后,我需要将json
Map
转换为基本URL的查询字符串的内容:String fullURL = parameterizeURL(baseURL, json);
// Prints: http://localhost:8080/myapp?email=blah&password=meh
// (if "blah" was entered as the email, and "meh" was entered as the password)
print(fullURL);
我在Git上找到了this query String-to-map library,但我需要它的逆!也可以在其中获得URL编码。
我很高兴自己做点什么,但是对Dart这么陌生,我想知道
pub
/ Github / etherspehere上是否已经有此功能。
最佳答案
您能否描述一下您的用法?首先,将诸如密码之类的数据保留在GET请求中并不是一个好习惯。最好将其作为POST请求。也就是说,如果您确实希望将其用作POST请求以发送 map 到服务器,请看一下:HttpRequest.postFormData,它将自动将您提供的Map作为POST数据添加到服务器。需要记住的一个警告是,数据必须是Map(或键和值必须是字符串)。用法示例:
import 'dart:html';
// ...
// Somewhere in your login related method
HttpRequest.postFormData('login.php', data).then((HttpRequest req) {
if(req.status != 200) {
print(req.statusText);
}
});
有一个可用于服务器端Dart的软件包,该软件包可让您轻松地处理各种HTTP请求,以恰当的方式命名为http。但是,这不适用于客户端脚本。我不知道任何现有的软件包都可以提供您想要的功能。
关于这一点,如果您决定自己滚动,则可以向您在问题中提到的QueryString项目提供拉取请求,以使功能可以通过一个简单的包提供给其他人。
关于url - Dart:将 map 转换成查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20804869/