Uri.resolve în Dart

Calculează adresa completă a unui link relativ (ca ../poza.png), pornind de la adresa curentă.

Sintaxă
Uri resolve(String reference)
Uri resolveUri(Uri reference)

Ce face Uri.resolve

Paginile web conțin des linkuri relative: poza.png, ../index.html, /contact. baza.resolve(link) calculează adresa absolută, exact cum face browserul. Cu baza https://site.ro/blog/articol/, linkul poza.png devine https://site.ro/blog/articol/poza.png.

Regulile: un link care începe cu / pornește de la rădăcina site-ului; ../ urcă un nivel; un link absolut (cu schemă) rămâne neschimbat. Contează bara finală a bazei: fără ea, ultimul segment este considerat fișier și este înlocuit. resolveUri primește un Uri în loc de text.

Parametri

Parametru Descriere
reference Linkul relativ sau absolut.

Ce returnează

Un Uri nou, absolut.

Exemple

Exemplul 1: Linkuri relative

void main() {
  var baza = Uri.parse('https://dexblog.ro/invata/dart/uri/');
  print(baza.resolve('poza.png'));
  print(baza.resolve('../string/'));
  print(baza.resolve('/despre'));
  print(baza.resolve('?pagina=2'));
  print(baza.resolve('https://alt-site.ro/x'));
  var fisier = Uri.parse('https://dexblog.ro/invata/index.html');
  print(fisier.resolve('dart/'));
}

Rezultat

https://dexblog.ro/invata/dart/uri/poza.png
String
despre
Uri
https://alt-site.ro/x https://dexblog.ro/invata/dart/

Exemplul 2: Linkurile absolute dintr-o pagină

void main() {
  var pagina = Uri.parse('https://exemplu.ro/magazin/telefoane/lista.html');
  var linkuri = ['detalii.html?id=5', '../accesorii/', '/cos', 'https://plata.ro/'];
  for (var l in linkuri) {
    print('$l → ${pagina.resolve(l)}');
  }
}

Rezultat

detalii.html?id=5 → https://exemplu.ro/magazin/telefoane/detalii.html?id=5
../accesorii/ → https://exemplu.ro/magazin/accesorii/
/cos → https://exemplu.ro/cos
https://plata.ro/ → https://plata.ro/

Greșeli frecvente

  • Uiți bara finală a bazei: Uri.parse('https://site.ro/blog').resolve('poza.png') dă https://site.ro/poza.png, nu /blog/poza.png.

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.replace: Returnează o copie a adresei în care sunt înlocuite doar părțile date (de exemplu parametrii sau calea).
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Uri.resolve

Ai o nelămurire despre utilizarea comenzii Uri.resolve sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.