Diferencia entre revisiones de «Prácticas con URL»
Ir a la navegación
Ir a la búsqueda
| (No se muestran 7 ediciones intermedias del mismo usuario) | |||
| Línea 54: | Línea 54: | ||
Escribe un programa que garde o contido dunha URL nun ficheiro chamado paxina.html. | Escribe un programa que garde o contido dunha URL nun ficheiro chamado paxina.html. | ||
| − | Tes este código para que | + | Tes este código de xestión do ficheiro para que che sirva de axuda: |
| + | <syntaxhighlight lang="java" line enclose="div" highlight="" > | ||
| + | // Código anterior a implementar... | ||
| + | if (fichero.exists()) { | ||
| + | System.out.println("O ficheiro " + sFichero + " xa existe!"); | ||
| + | } else { | ||
| + | try { | ||
| + | // Ábrese unha conexión hacia esa URL que devolverá unha canle de entrada pola cal poderá ler todo o que chegue | ||
| + | BufferedReader paginaHtml = new BufferedReader(new InputStreamReader(entrada)); | ||
| + | BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero)); | ||
| + | |||
| + | // Leese e preséntase o contido do ficheiro en pantalla liña a líña | ||
| + | while ((cadena = paginaHtml.readLine()) != null) { | ||
| + | bw.write(cadena + "\r\n"); | ||
| + | } | ||
| + | |||
| + | System.out.println("Ficheiro creado correctamente"); | ||
| + | |||
| + | try { | ||
| + | paginaHtml.close(); | ||
| + | bw.close(); | ||
| + | } catch (IOException e) { | ||
| + | e.printStackTrace(); | ||
| + | System.out.println("Excepción na entrada e saída ó pechar o ficheiro!"); | ||
| + | } | ||
| + | |||
| + | } catch (UnknownHostException e) { | ||
| + | e.printStackTrace(); | ||
| + | System.out.println("Debes estar conectado para que isto funcione ben!"); | ||
| + | } catch (MalformedURLException e) { | ||
| + | e.printStackTrace(); | ||
| + | System.out.println("Esa URL non está ben formada!"); | ||
| + | } catch (IOException e) { | ||
| + | e.printStackTrace(); | ||
| + | System.out.println("Excepción na entrada e saída!"); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | = Enunciado 3 = | ||
| + | Crea un programa que descargue unha imaxe a partir da súa URL. | ||
| + | |||
| + | Tes este código de xestión do ficheiro para a escritura da imaxe para que che sirva de axuda: | ||
| + | <syntaxhighlight lang="java" line enclose="div" highlight="" > | ||
| + | // obtense o inputStream da foto web e ábrese o ficheiro local. | ||
| + | InputStream is = urlCon.getInputStream(); | ||
| + | FileOutputStream fos = new FileOutputStream("foto.jpg"); | ||
| + | |||
| + | // lectura da foto da web e escritura en ficheiro local | ||
| + | byte[] array = new byte[1000]; // buffer temporal de lectura | ||
| + | int leido = is.read(array); | ||
| + | |||
| + | while (leido > 0) { | ||
| + | fos.write(array, 0, leido); | ||
| + | leido = is.read(array); | ||
| + | } | ||
| + | |||
| + | // peche de conexion e ficheiro. | ||
| + | is.close(); | ||
| + | fos.close(); | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | = Enunciado 4 = | ||
| + | Crea unha URLConnection utilizando o método openConnection() dun obxecto URL. Despois utilízao para: | ||
| + | * examinar as propiedades. Por exemplo o valor do campo: | ||
| + | :* ''date'' da cabecera | ||
| + | :* ''content-type'' da cabecera (ou nulo de é descoñecido) | ||
| + | :* ''expires'' da cabecera | ||
| + | :* ''last-modified'' da cabecera (se non o tratas, o resultado é o número de milisegundos desde o 1 de xaneiro de 1970 GMT) | ||
| + | * amosar os contidos do documento | ||
= Solucións = | = Solucións = | ||
Podes consultar as [[solucións ás practicas con URL]]. | Podes consultar as [[solucións ás practicas con URL]]. | ||
| + | |||
| + | = Créditos e referencias = | ||
| + | <div style="column-count:2;-moz-column-count:2;-webkit-column-count:2"> | ||
| + | * [https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection.html API URLConnection] | ||
| + | * [https://docs.oracle.com/javase/tutorial/networking/urls/index.html Working with URLs] | ||
| + | * [https://runebook.dev/es/docs/openjdk/java.base/java/net/urlconnection urlConnection en castelán] | ||
| + | * [https://www.codejava.net/java-se/networking/java-urlconnection-and-httpurlconnection-examples 7 exemplos de urlConnection e httpUrlConnection] | ||
| + | * [https://camposha.info/java-examples/java-url/ URL] | ||
| + | * [https://camposha.info/java-examples/java-networking-urlconnection/ urlConnection] | ||
| + | * [https://camposha.info/java-examples/java-networking-httpurlconnection/ httpUrlConnection] | ||
| + | * [https://www.codegrepper.com/code-examples/java/java+get+html+from+url Get html from URL] | ||
| + | * [https://www.tutorialspoint.com/how-to-read-the-contents-of-a-webpage-into-a-string-in-java ler contidos dunha web - con openStream() e con librerías Jsoup e HttpClient] | ||
| + | * [https://es.acervolima.com/2021/09/12/clase-java-net-httpurlconnection-en-java/ httpURLConnection en castelán] | ||
| + | * [http://www.jtech.ua.es/j2ee/2003-2004/modulos/jhd/sesion08-apuntes.htm Apuntes sobre como establecer comunicacións en rede] | ||
| + | * [https://programmerclick.com/article/5513233328/ Clase URLConnection] | ||
| + | * [https://programmerclick.com/article/6706320407/ Clases URLConnection e HttpURLConnection] | ||
| + | </div> | ||
Revisión actual del 22:54 13 nov 2021
Sumario
Enunciado 1
Comproba o funcionamento do seguinte programa, e analiza os resultados obtidos:
1 import java.net.*;
2
3 // https://www.cifprodolfoucha.es/centro/
4 class url_ej1_a{
5 public static void main( String[] args ) {
6 url_ej1_a obj = new url_ej1_a();
7
8 try {
9 System.out.println("Constructor simple para URL principal" );
10 obj.display( new URL( "https://www.cifprodolfoucha.es" ) );
11
12 System.out.println("Constructor de cadea para URL + directorio" );
13 obj.display( new URL( "https://www.cifprodolfoucha.es/centro") );
14
15 System.out.println("Constructor con protocolo, host e directorio" );
16 obj.display( new URL("https","www.cifprodolfoucha.es","/centro" ) );
17
18 System.out.println("Constructor con protocolo, host, porto e directorio" );
19 obj.display( new URL("https","www.cifprodolfoucha.es",443,"/centro" ) );
20
21 System.out.println( "Construe un enderezo absoluto a partir do enderezo do Host e unha URL relativa" );
22 URL baseURL = new URL("https://www.cifprodolfoucha.es" );
23 obj.display( new URL( baseURL,"/centro") );
24
25 } catch( MalformedURLException e ) {
26 System.out.println( e );
27 }
28 }
29
30 // Método para poder presentar na pantalla partes dun enderezo URL
31 void display( URL url ) {
32 System.out.print( url.getProtocol()+" " );
33 System.out.print( url.getHost()+" " );
34 System.out.print( url.getPort()+" " );
35 System.out.print( url.getFile()+" " );
36 System.out.println( url.getRef() );
37
38 // Presenta o enderezo completa como unha cadea
39 System.out.println( url.toString() );
40 System.out.println();
41 }
42 }
Modificao para comprobar o funcionamento con:
Enunciado 2
Escribe un programa que garde o contido dunha URL nun ficheiro chamado paxina.html.
Tes este código de xestión do ficheiro para que che sirva de axuda:
1 // Código anterior a implementar...
2 if (fichero.exists()) {
3 System.out.println("O ficheiro " + sFichero + " xa existe!");
4 } else {
5 try {
6 // Ábrese unha conexión hacia esa URL que devolverá unha canle de entrada pola cal poderá ler todo o que chegue
7 BufferedReader paginaHtml = new BufferedReader(new InputStreamReader(entrada));
8 BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
9
10 // Leese e preséntase o contido do ficheiro en pantalla liña a líña
11 while ((cadena = paginaHtml.readLine()) != null) {
12 bw.write(cadena + "\r\n");
13 }
14
15 System.out.println("Ficheiro creado correctamente");
16
17 try {
18 paginaHtml.close();
19 bw.close();
20 } catch (IOException e) {
21 e.printStackTrace();
22 System.out.println("Excepción na entrada e saída ó pechar o ficheiro!");
23 }
24
25 } catch (UnknownHostException e) {
26 e.printStackTrace();
27 System.out.println("Debes estar conectado para que isto funcione ben!");
28 } catch (MalformedURLException e) {
29 e.printStackTrace();
30 System.out.println("Esa URL non está ben formada!");
31 } catch (IOException e) {
32 e.printStackTrace();
33 System.out.println("Excepción na entrada e saída!");
34 }
35 }
36 }
Enunciado 3
Crea un programa que descargue unha imaxe a partir da súa URL.
Tes este código de xestión do ficheiro para a escritura da imaxe para que che sirva de axuda:
1 // obtense o inputStream da foto web e ábrese o ficheiro local.
2 InputStream is = urlCon.getInputStream();
3 FileOutputStream fos = new FileOutputStream("foto.jpg");
4
5 // lectura da foto da web e escritura en ficheiro local
6 byte[] array = new byte[1000]; // buffer temporal de lectura
7 int leido = is.read(array);
8
9 while (leido > 0) {
10 fos.write(array, 0, leido);
11 leido = is.read(array);
12 }
13
14 // peche de conexion e ficheiro.
15 is.close();
16 fos.close();
Enunciado 4
Crea unha URLConnection utilizando o método openConnection() dun obxecto URL. Despois utilízao para:
- examinar as propiedades. Por exemplo o valor do campo:
- date da cabecera
- content-type da cabecera (ou nulo de é descoñecido)
- expires da cabecera
- last-modified da cabecera (se non o tratas, o resultado é o número de milisegundos desde o 1 de xaneiro de 1970 GMT)
- amosar os contidos do documento
Solucións
Podes consultar as solucións ás practicas con URL.
Créditos e referencias
- API URLConnection
- Working with URLs
- urlConnection en castelán
- 7 exemplos de urlConnection e httpUrlConnection
- URL
- urlConnection
- httpUrlConnection
- Get html from URL
- ler contidos dunha web - con openStream() e con librerías Jsoup e HttpClient
- httpURLConnection en castelán
- Apuntes sobre como establecer comunicacións en rede
- Clase URLConnection
- Clases URLConnection e HttpURLConnection