Ce face URI.getHost
getHost() returnează partea de gazdă a adresei: numele domeniului (dexblog.ro) sau adresa IP. Nu include schema, portul sau calea.
Dacă adresa nu are gazdă (mailto:ana@exemplu.ro, o cale relativă /invata/) sau gazda nu respectă regulile de nume (de exemplu conține _), metoda returnează null. Verifică rezultatul înainte să-l folosești.
Metodele vecine: getPort() dă portul sau -1 dacă nu este scris în adresă; getScheme(), getPath() și getQuery() dau celelalte părți (decodificate).
Ce returnează
Numele gazdei ca String sau null.
Exemple
Exemplul 1: Gazda unor linkuri
import java.net.URI;
public class Main {
public static void main(String[] args) {
String[] linkuri = {
"https://dexblog.ro/invata/java/",
"http://www.anaf.ro:8080/formulare",
"https://192.168.1.10/admin",
"mailto:ana@exemplu.ro",
"/invata/php/",
};
for (String l : linkuri) {
URI u = URI.create(l);
System.out.println(l + " -> gazda " + u.getHost() + ", port " + u.getPort());
}
}
}
Rezultat
https://dexblog.ro/invata/java/ -> gazda dexblog.ro, port -1
http://www.anaf.ro:8080/formulare -> gazda www.anaf.ro, port 8080
https://192.168.1.10/admin -> gazda 192.168.1.10, port -1
mailto:ana@exemplu.ro -> gazda null, port -1
/invata/php/ -> gazda null, port -1
Exemplul 2: Link intern sau extern?
import java.net.URI;
public class Main {
static boolean esteIntern(String link) {
String gazda = URI.create(link).getHost();
return gazda == null || gazda.equals("dexblog.ro") || gazda.endsWith(".dexblog.ro");
}
public static void main(String[] args) {
for (String l : new String[] {"/contact/", "https://dexblog.ro/invata/", "https://blog.dexblog.ro/", "https://exemplu.com/"}) {
System.out.println(l + " -> " + (esteIntern(l) ? "intern" : "extern"));
}
}
}
Rezultat
/contact/ -> intern
https://dexblog.ro/invata/ -> intern
https://blog.dexblog.ro/ -> intern
https://exemplu.com/ -> extern
Greșeli frecvente
- Apelezi
getHost().equals(...)fără să verificinull. Pe o cale relativă primeștiNullPointerException. - Verifici domeniul cu
link.contains("dexblog.ro").https://dexblog.ro.exemplu.comar trece testul; compară gazda extrasă cugetHost().
Comenzi înrudite
URI: O adresă (URL) verificată și împărțită în părți; URI.create(„https://…”) o creează și aruncă IllegalArgumentException dacă e greșită.HttpRequest: O cerere HTTP imutabilă (adresă, metodă, antete, corp), construită cu HttpRequest.newBuilder(uri)…build().