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
Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…
Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.
Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.
Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.
Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…
Im Rahmen der umfassenden Digitalisierung der Bundeswehr ersetzen Electronic Knee Boards die herkömmlichen Handbücher von…