Einfacher Zugriff auf Web-Ressourcen mit Javas URL-Klasse

Mit den Netzwerk-Klassen von Java können Anwendungen über eine Netzwerk- oder Fernverbindung kommunizieren. Die Plattform erstreckt sich auch auf das Internet und entsprechende URLs. Javas URL-Klasse erlaubt es, auf Web-Ressourcen ebenso einfach zuzugreifen wie auf lokale Dateien. Der Artikel demonstriert, wie man sich die Möglichkeiten dieser Klasse zunutze machen kann, um Daten via URL-Verbindung zu lesen und zu schreiben.

Grundlegendes zum Aufbau einer URL

Eine URL identifiziert Ressourcen wie Dateien, Webseiten und Webanwendungen, die sich im Internet befinden. Sie besteht aus mehreren syntaktischen Elementen. Ein Beispiel wäre die folgende URL:


http://www.example.com:8080/mywebapps/AWebApp

Das Protokoll wird mit http angegeben. Der Hostname lautet www.example.com. Die Portnummer ist 8080. Der Rest der URL, /mywebapps/AWebApp, bezeichnet die Ressource auf der Website, auf die zugegriffen werden soll. In diesem Fall handelt es sich bei der Ressource um eine Webanwendung. URLs können auch andere Elemente enthalten, etwa Fragmente und Query-Strings.

Die von einer URL bezogenen Daten können sehr unterschiedlich sein. Deshalb ist ein einheitliches Verfahren zum Auslesen und Schreiben von URLs erforderlich. Java bietet ein solches Verfahren im java.net-Paket an. Die in diesem Paket enthaltene Klasse, die hier näher besprochen wird soll, ist die URL-Klasse.

Die URL-Klasse ist eine Abstraktion des URL-Identifikators. Sie erlaubt es dem Java-Programmierer, eine Verbindung zu einer bestimmten URL zu öffnen, Daten von dieser auszulesen, Daten an diese zu schreiben, Informationen im Header zu lesen und zu schreiben und andere Aktionen auf der URL durchzuführen. Im Folgenden wird beschrieben, wie man dank der URL-Klasse und der Stream-Klassen aus dem java.io-Paket mit einer URL fast so arbeiten kann wie mit lokalen Dateien und Socket-Verbindungen.

Konstruktoren fordern exakte Angaben

Beim Erstellen einer Instanz der java.net.URL-Klasse, kann man sich mehrere öffentlich verfügbare Konstruktoren zunutze machen, um Flexibilität zu gewinnen. So enthält die Klasse beispielsweise einen Konstruktor, der einen vollständigen URL-String erwartet. Daneben gibt es einen weiteren Konstruktor, der einen URL-String erfordert, der in Protokoll, Host und Datei/Ressource unterteilt ist. Und schließlich gibt es noch einen Konstruktor, der einen aus Protokoll, Host, Port und Datei bestehenden URL-String verlangt. Im Folgenden wird eine Instanz der URL-Klasse erstellt, der eine vollständige URL zugrunde liegt:

In diesem Beispiel bezeichnet http das Protokoll, www.example.com den Host, 8080 den Port und index.html die Datei beziehungsweise Ressource. Jeder der Konstruktoren der URL-Klasse löst eine Fehlermeldung der Form MalformedURLException für den Fall aus, dass die eingegebenen Argumente eine syntaktisch falsche URL ergeben.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

CopyRhadamantys greift weltweit Unternehmen an

Ausgeklügelte Phishing-Kampagne verwendet eine weiterentwickelte Version der Rhadamanthys-Stealer-Malware.

2 Tagen ago

Facebook Marketplace: EU verhängt Geldbuße von fast 800 Millionen Euro gegen Meta

Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…

3 Tagen ago

Umfrage: Angestellte in Deutschland unterschätzen NIS-2-Richtlinie

Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…

3 Tagen ago

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

4 Tagen ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

4 Tagen ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

4 Tagen ago