This shows you the differences between two versions of the page.
java:urls [2015/03/23 20:32] gthanos [Χρησιμοποιώντας την κλάση URL για να ανοίξουμε ένα απομακρυσμένο resource] |
java:urls [2016/02/26 11:15] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Δουλεύοντας με URLs ====== | ||
- | Το πρώτο μέρος του URL ονομάζεται αναγνωριστικό πρωτοκόλλου και δείχνει το τι πρωτόκολλο χρησιμοποιείται κάθε φορά, και το δεύτερο μέρος ονομάζεται όνομα του πόρου και διευκρινίζει τη διεύθυνση IP ή το όνομα τομέα όπου βρίσκεται ο πόρος. Το αναγνωριστικό πρωτοκόλλου και το όνομα του πόρου χωρίζονται από μια άνω και κάτω τελεία και δύο καθέτους. | ||
- | |||
- | ===== Δημιουργώντας ένα URL ===== | ||
- | |||
- | Μπορείτε να δημιουργήσετε ένα αντικείμενο του τύπου URL με τους παρακάτω τρόπους | ||
- | * με χρήση της απόλυτης διεύθυνσης | ||
- | <code java> | ||
- | URL myURL = new URL("http://example.com/pages/"); | ||
- | </code> | ||
- | * με χρήση ενός //base URL// και μία σχετική διεύθυνση σε σχέση με αυτό όπως παρακάτω (θεωρήστε ως myURL, το URL που ορίστηκε παραπάνω): | ||
- | <code java> | ||
- | URL page1URL = new URL(myURL, "page1.html"); | ||
- | URL page2URL = new URL(myURL, "page2.html"); | ||
- | </code> | ||
- | * με χρήση των επιμέρους στοιχείων του URL, όπως παρακάτω | ||
- | <code java> | ||
- | URL yourURL = new URL("http", "example.com", 80, "pages/page1.html"); | ||
- | </code> | ||
- | |||
- | Όλοι οι κατασκευαστές της κλάσης URL μπορούν να δημιουργήσουν ένα [[http://docs.oracle.com/javase/7/docs/api/java/net/MalformedURLException.html|MalformedURLException]] εάν το πρωτόκολλο που εισάγεται δεν είανι σωστό ή ένα από τα ορίσματα έχει τιμή NULL. Θα πρέπει να διαχειριστείτε το συγκεκριμένο Exception μέσε ένα try/catch block. | ||
- | |||
- | ===== Αναλύοντας ένα URL με βάση το API της κλάσης ===== | ||
- | |||
- | <code java 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()); | ||
- | } | ||
- | } | ||
- | </code> | ||
- | |||
- | Το αποτέλεσμα εκτέλεσης του παραπάνω κώδικα είναι το εξής | ||
- | <code> | ||
- | 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 | ||
- | </code> | ||
- | |||
- | ===== Χρησιμοποιώντας την κλάση URL για να ανοίξουμε ένα απομακρυσμένο resource ===== | ||
- | |||
- | <code java> | ||
- | 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) { | ||
- | } | ||
- | } | ||
- | } | ||
- | </code> | ||