This is an old revision of the document!
Table of Contents
Δουλεύοντας με URLs
Το πρώτο μέρος του URL ονομάζεται αναγνωριστικό πρωτοκόλλου και δείχνει το τι πρωτόκολλο χρησιμοποιείται κάθε φορά, και το δεύτερο μέρος ονομάζεται όνομα του πόρου και διευκρινίζει τη διεύθυνση IP ή το όνομα τομέα όπου βρίσκεται ο πόρος. Το αναγνωριστικό πρωτοκόλλου και το όνομα του πόρου χωρίζονται από μια άνω και κάτω τελεία και δύο καθέτους.
Δημιουργώντας ένα URL
Μπορείτε να δημιουργήσετε ένα αντικείμενο του τύπου URL με τους παρακάτω τρόπους
- με χρήση της απόλυτης διεύθυνσης
URL myURL = new URL("http://example.com/pages/");
- με χρήση ενός base URL και μία σχετική διεύθυνση σε σχέση με αυτό όπως παρακάτω (θεωρήστε ως myURL, το URL που ορίστηκε παραπάνω):
URL page1URL = new URL(myURL, "page1.html"); URL page2URL = new URL(myURL, "page2.html");
- με χρήση των επιμέρους στοιχείων του URL, όπως παρακάτω
URL yourURL = new URL("http", "example.com", 80, "pages/page1.html");
Όλοι οι κατασκευαστές της κλάσης URL μπορούν να δημιουργήσουν ένα MalformedURLException εάν το πρωτόκολλο που εισάγεται δεν είανι σωστό ή ένα από τα ορίσματα έχει τιμή NULL. Θα πρέπει να διαχειριστείτε το συγκεκριμένο Exception μέσε ένα try/catch block.
Αναλύοντας ένα URL με βάση το API της κλάσης
- DecomposeURL.java
import java.net.*; import java.io.*; public class DecomposeURL { public static void main(String[] args) throws Exception { URL aURL = new URL("http://example.com:80/docs/books/tutorial" + "/index.html?name=john&sirname=smith#flushing"); System.out.println("protocol = " + aURL.getProtocol()); System.out.println("authority = " + aURL.getAuthority()); System.out.println("host = " + aURL.getHost()); System.out.println("port = " + aURL.getPort()); System.out.println("path = " + aURL.getPath()); System.out.println("query = " + aURL.getQuery()); System.out.println("filename = " + aURL.getFile()); System.out.println("ref = " + aURL.getRef()); } }
Το αποτέλεσμα εκτέλεσης του παραπάνω κώδικα είναι το εξής
protocol = http authority = example.com:80 host = example.com port = 80 path = /docs/books/tutorial/index.html query = name=john&sirname=smith filename = /docs/books/tutorial/index.html?name=john&sirname=smith ref = flushing
Χρησιμοποιώντας την κλάση URL για να ανοίξουμε ένα απομακρυσμένο resource
import java.net.*; import java.io.*; public class URLReader { public static void main(String[] args) { try { URL oracle = new URL("http://www.oracle.com/"); BufferedReader in = new BufferedReader( new InputStreamReader(oracle.openStream()) ); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); } in.close(); catch(MalformedURLException ex) { } } }