Ce face Uri.https
Uri.https('api.exemplu.ro', '/v1/vreme', {'oras': 'Iași'}) creează adresa https://api.exemplu.ro/v1/vreme?oras=Ia%C8%99i. Primul argument este „autoritatea”: domeniul, opțional cu port ('localhost:8080'). Al doilea este calea, scrisă normal, iar al treilea parametrii.
Calea și parametrii sunt codificați automat, deci poți pune spații și diacritice fără grijă. Valorile parametrilor sunt texte sau liste de texte (pentru parametri repetați). Uri.http funcționează la fel, cu schema http. Este forma cerută de pachetul http: http.get(Uri.https(...)).
Parametri
| Parametru | Descriere |
|---|---|
authority |
Domeniul, opțional cu utilizator și port. |
unencodedPath |
Calea, necodificată. |
queryParameters |
Parametrii: valori String sau Iterable<String>. |
Ce returnează
Un Uri.
Exemple
Exemplul 1: Adrese pentru un API
void main() {
var vreme = Uri.https('api.exemplu.ro', '/v1/vreme', {'oras': 'Iași', 'zile': '3'});
print(vreme);
print(vreme.host);
print(vreme.queryParameters);
var local = Uri.http('localhost:8080', '/api/elevi');
print(local);
print(local.port);
}
Rezultat
https://api.exemplu.ro/v1/vreme?oras=Ia%C8%99i&zile=3
api.exemplu.ro
{oras: Iași, zile: 3}
http://localhost:8080/api/elevi
8080
Exemplul 2: Căutare cu filtre multiple
Uri cautare(String text, List<String> orase, int pagina) => Uri.https(
'anunturi.exemplu.ro',
'/cauta/apartamente de închiriat',
{'q': text, 'oras': orase, 'pagina': '$pagina'},
);
void main() {
var u = cautare('2 camere', ['Iași', 'Cluj'], 1);
print(u);
print(u.path);
print(u.queryParametersAll['oras']);
}
Rezultat
https://anunturi.exemplu.ro/cauta/apartamente%20de%20%C3%AEnchiriat?q=2+camere&oras=Ia%C8%99i&oras=Cluj&pagina=1
/cauta/apartamente%20de%20%C3%AEnchiriat
[Iași, Cluj]
Greșeli frecvente
- Pui
https://în primul argument:Uri.https('https://site.ro', ...)dă o adresă greșită. Primul argument este doar domeniul. - Dai valori numerice în parametri:
{'pagina': 2}aruncă eroare la rulare. Valorile trebuie să fie texte:'2'sau'$pagina'.
Comenzi înrudite
Uri: O adresă web (URL) sau de fișier, desfăcută în părți: schemă, host, port, cale, parametri și fragment.Uri.queryParameters: queryParameters dă parametrii de după ? ca Map, decodificați; pathSegments dă bucățile căii, ca listă.Uri.encodeComponent: Codifică un text ca să poată sta în siguranță într-o bucată de URL (spații, diacritice, &, /) și invers.