URI.getHost în Java

Returnează numele gazdei dintr-o adresă (dexblog.ro din https://dexblog.ro/invata/); null dacă adresa nu are gazdă.

Sintaxă
String getHost()
int getPort()
String getScheme()
String getPath()
String getQuery()

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ă verifici null. Pe o cale relativă primești NullPointerException.
  • Verifici domeniul cu link.contains("dexblog.ro"). https://dexblog.ro.exemplu.com ar trece testul; compară gazda extrasă cu getHost().

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().