Gestion des URL en Java

L'URL (Uniform Resource Locator), également appelée adresse web, représente des ressources sur Internet, telles que des pages web ou des adresses FTP.

Dans cette section, nous présenterons comment Java gère les URL. Une URL peut être divisée en parties, comme suit.

protocol://host:port/path?query#fragment

Le protocole peut être HTTP, HTTPS, FTP et File ; le port est le numéro de port ; le chemin est le chemin du fichier et le nom du fichier.

Un exemple d'URL de protocole HTTP est le suivant :

http://www.example.com/index.html?language=cn#j2se

Analyse d'URL :

  • Protocole :http
  • Hôte (host:port):www.example.com
  • Numéro de port :80. L’exemple d’URL ci-dessus ne spécifie pas de port, car le numéro de port par défaut du protocole HTTP est 80.
  • Chemin de fichier (path) :/index.html
  • Paramètres de requête (query):language=cn
  • Fragment (fragment) :j2se, localisant la position de l’élément HTML avec l’attribut id j2se dans la page web.

Méthodes de la classe URL

La classe URL est définie dans le package java.net, et elle est utilisée pour gérer le contenu lié aux URL. La création et l’utilisation de la classe URL sont présentées séparément ci-dessous.

java.net.URL fournit diverses façons de construire des URL, et des ressources peuvent être obtenues via java.net.URL.

Non.Description de la méthode
1public URL(String protocol, String host, int port, String file) throws MalformedURLException.
Crée une URL à l’aide des paramètres donnés (protocole, nom d’hôte, numéro de port, nom de fichier).
2public URL(String protocol, String host, String file) throws MalformedURLException
Crée une URL à l'aide du protocole, du nom d'hôte et du nom de fichier spécifiés, en utilisant le port par défaut du protocole.
3public URL(String url) throws MalformedURLException
Crée une URL à partir de la chaîne d'URL donnée.
4public URL(URL context, String url) throws MalformedURLException
Crée à l'aide d'une adresse de base et d'une URL relative.

La classe URL contient de nombreuses méthodes pour accéder à diverses parties d'une URL. Les méthodes spécifiques et leurs descriptions sont les suivantes :

Non.Description de la méthode
1public String getPath()
Renvoie la partie chemin de l'URL.
2public String getQuery()
Renvoie la partie requête de l'URL.
3public String getAuthority()
Obtient la partie autorité de cette URL.
4public int getPort()
Renvoie la partie port de l'URL.
5public int getDefaultPort()
Renvoie le numéro de port par défaut du protocole.
6public String getProtocol()
Renvoie le protocole de l'URL.
7public String getHost()
Renvoie l'hôte de l'URL.
8public String getFile()
Renvoie la partie nom de fichier de l'URL.
9public String getRef()
Récupère l'ancre (également appelée "référence") de cette URL.
10public URLConnection openConnection() throws IOException
Ouvre une connexion URL et exécute le client pour accéder à la ressource.

Exemple

L'exemple ci-dessus montre comment utiliser la classe URL de java.net pour obtenir divers paramètres des différentes parties d'une URL :

URLDemo.java

import java.net.*; import java.io.*; public class URLDemo { public static void main(String [] args) { try { URL url = new URL("http://www.example.com/index.html?language=cn#j2se"); System.out.println("URL:" + url.toString()); System.out.println("Protocol:" + url.getProtocol()); System.out.println("Authority:" + url.getAuthority()); System.out.println("File name and request parameters:" + url.getFile()); System.out.println("Nom d'hôte:" + url.getHost()); System.out.println("Chemin:" + url.getPath()); System.out.println("Port:" + url.getPort()); System.out.println("Port par défaut:" + url.getDefaultPort()); System.out.println("Paramètres de requête:" + url.getQuery()); System.out.println("Fragment:" + url.getRef()); }catch(IOException e) { e.printStackTrace(); } } }

Le résultat de compilation et d'exécution de l'exemple ci-dessus est le suivant :

URL 为:http://www.example.com/index.html?language=cn#j2se
协议为:http
验证信息:www.example.com
文件名及请求参数:/index.html?language=cn
主机名:www.example.com
路径:/index.html
端口:-1
默认端口:80
请求参数:language=cn
定位位置:j2se

Méthodes de classe URLConnections

openConnection() renvoie un java.net.URLConnection.

Par exemple :

  • Si vous vous connectez à une URL avec le protocole HTTP, la méthode openConnection() renvoie un objet HttpURLConnection.

  • Si l'URL à laquelle vous vous connectez est un fichier JAR, la méthode openConnection() renverra un objet JarURLConnection.

  • Et ainsi de suite...

La liste des méthodes de URLConnection est la suivante :

Non.Description de la méthode
1Object getContent()
Récupère le contenu du lien URL.
2Object getContent(Class[] classes)
Récupère le contenu du lien URL.
3String getContentEncoding()
Renvoie la valeur du champ d'en-tête content-encoding.
4int getContentLength()
Renvoie la valeur du champ d'en-tête content-length.
5String getContentType()
Renvoie la valeur du champ d'en-tête content-type.
6int getLastModified()
Renvoie la valeur du champ d'en-tête last-modified.
7long getExpiration()
Renvoie la valeur du champ d'en-tête expires.
8long getIfModifiedSince()
Renvoie la valeur du champ ifModifiedSince de l'objet.
9public void setDoInput(boolean input)
Une connexion URL peut être utilisée pour l'entrée et/ou la sortie. Si vous prévoyez d'utiliser la connexion URL pour l'entrée, définissez le drapeau DoInput sur true ; si vous ne prévoyez pas de l'utiliser, définissez-le sur false. La valeur par défaut est true.
10public void setDoOutput(boolean output)
Une connexion URL peut être utilisée pour l'entrée et/ou la sortie. Si vous prévoyez d'utiliser la connexion URL pour la sortie, définissez le drapeau DoOutput sur true ; si vous ne prévoyez pas de l'utiliser, définissez-le sur false. La valeur par défaut est false.
11public InputStream getInputStream() throws IOException
Renvoie le flux d'entrée de l'URL, utilisé pour lire les ressources.
12public OutputStream getOutputStream() throws IOException
Renvoie le flux de sortie de l'URL, utilisé pour écrire des ressources.
13public URL getURL()
Renvoie l'URL à laquelle l'objet URLConnection est connecté.

Exemple

Dans l'exemple suivant, l'URL utilise le protocole HTTP. openConnection renvoie un objet HttpURLConnection.

URLConnDemo.java

import java.net.*; import java.io.*; public class URLConnDemo { public static void main(String [] args) { try { URL url = new URL("http://www.example.com"); URLConnection urlConnection = url.openConnection(); HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection) { connection = (HttpURLConnection) urlConnection; } else { System.out.println("Veuillez saisir une adresse URL."); return; } BufferedReader in = new BufferedReader( new InputStreamReader(connection.getInputStream())); String urlString = ""; String current; while((current = in.readLine()) != null) { urlString += current; } System.out.println(urlString); }catch(IOException e) { e.printStackTrace(); } } }

Le résultat de compilation et d'exécution de l'exemple ci-dessus est le suivant :

$ javac URLConnDemo.java 
$ java URLConnDemo
.....这里会输出Example首页(http://www.example.com)的 HTML 内容.....
Autres extensions