url - Dart:将 map 转换成查询字符串

标签 url map type-conversion query-string dart

我有一种情况,我需要将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/

相关文章:

java - 在java泛型类中将Integer转换为int

c++ - 在 VC++ 中将 void 指针变量类型转换并分配给 Integer 变量。

php - 如何通过 PHP 将最干净的 url 获取/读取到 Meta Canonical?

JavaScript - 获取 URL 路径的一部分

java - 在 Javascript 中请求 URL,使用 Java Applet 获取 URL 内容,返回 Javascript?

regex - Bing 搜索链接到 Google 表格中的底层链接

scala - 在 Map 对象上应用方法?

java - 谷歌 Collection 中是否有一个字符串来映射拆分器

c++ - 为什么在 C++ 中,值为 65536 的整数变量的输出为 0 而 < 65536 给出一个负整数,而 > 65536 值给出一个正整数?

c++ - 被 const 逼入绝境:std::map::find() const 重载