我有一个多字字符串,我想将其转换为 GET 请求参数。
我有一个 API 端点 /search
接受参数 query
。现在,您的请求通常看起来像 http://host/search?query=Hello+World
。
我有一个 String
Hello World 我想将其转换为这个 URL 编码参数。
当然,我可以编写将其分解为单词并在其间添加 +
的逻辑,但我想知道 URI class could help with this
我正在使用 Dart 的 httpClient
发出请求。
Future<String> _getJsonData(String queryToSearch) async {
List data = new List();
var httpClient = new HttpClient();
var request = await httpClient.getUrl(Uri.parse(
config['API_ENDPOINT'] + '/search?query=' +
queryToSearch));
var response = await request.close();
if (response.statusCode == HttpStatus.OK) {
var jsonString = await response.transform(utf8.decoder).join();
data = json.decode(jsonString);
print(data[0]);
return data[0].toString();
} else {
return "{}";
}
}
本质上,需要将 queryToSearch
编码为 URL 参数。
最佳答案
您可以使用 Uri.http(s)
将所有内容(查询、主机和路径)包装在一起并相应地对其进行编码。
final uri = new Uri.http(config['API_ENDPOINT'], '/search', {"query": queryToSearch});
关于dart - 使用标准库将字符串转换为 Dart 中的 GET 请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49899164/