У меня есть строка из нескольких слов, которую я хотел бы преобразовать в параметр запроса GET.
У меня есть конечная точка API /search
, которая принимает параметр query
. Обычно ваш запрос будет выглядеть как http://host/search?query=Hello+World
.
У меня есть String
Hello World, который я хочу преобразовать в этот закодированный параметр URL.
Конечно, я мог бы просто написать логику, чтобы разбить ее на слова и добавить +
между ними, но мне было интересно, будет ли В этом может помочь класс URI
Я использую 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.