Contenidos:
- Introducción: Como funciona la comunicación en red.
- Leyendo desde una URL : Hora de conectar y leer de Internet.
- Programar Java para conectar a servidores proxy HTTP.
- A descargar contenido de Internet.
- Cotización en bolsa: Un programa aplicando lo aprendido.
- Programación de sockets: Más allá de los protocolos estándar.
2. Leyendo desde una URL : Hora de conectar y leer de Internet.
Al igual que cuando leemos flujos de archivos locales; lo mismo sucede en la lectura de archivos remoto, la única diferencia es que el flujo se abre en la red. En Java la clase
java.net.URL
nos permite conectarse a un equipo remoto en Internet y acceder a recurso; siempre y cuando no esté protegido al público.
Se genera
A continuación os dejo la clase LectorWebSite que lee el contenido de index.html de google.com:
MalformedURLException
si se especifica una URL incorrecta, por ejemplo si se escribe htp en lugar de http o añade espacios sobrantes. Si se genera MalformedURLException
, no indica que el equipo remoto tiene problemas: comprueba la ortografía de la URL La creación del objeto URL no establece una conexión con el equipo remoto; tendrá que abrir un flujo y leerlo. Estos son los pasos a seguir:- Cree una instancia de la clase
URL.
- Cree una instancia de la clase
URLConnection
y abra una conexión por medio de la URL del paso 1. - Obtenga una referencia a un flujo de entrada de este objeto mediante la invocación del método URConnection.getInputStream().
- Lea los datos desde el flujo. Use un lector en búfer para acelerar el proceso.
A continuación os dejo la clase LectorWebSite que lee el contenido de index.html de google.com:
package com.pelusadev.programacionenlared;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
/**
*
* @author pelusadev
*/
public class LectorWebSite {
public static void main(String[] args) {
String nextLine;
URL url = null;
URLConnection urlConn = null;
InputStreamReader inStream = null;
BufferedReader buff = null;
try{
// index.html es un nombre de archivo predeterminado de una URL
url = new URL("http://www.google.com");
urlConn = url.openConnection();
inStream = new InputStreamReader(urlConn.getInputStream(),"UTF-8");
buff = new BufferedReader(inStream);
// Leer e imprimir las líneas de index.html
while(true)
{
nextLine = buff.readLine();
if(nextLine != null)
{
System.out.println(nextLine);
}else{
break;
}
}
}catch(MalformedURLException e){
System.err.println("Por favor chequea la URL: " + e.toString());
}catch(IOException e){
System.err.println("No se puede leer desde Internet: " + e.toString());
}finally{
if(inStream != null)
{
try{
inStream.close();
buff.close();
}catch(IOException e){
System.err.println("No se puede cerrar los streams: " + e.toString());
}
}
}
}
}
Y este es el resulado mostrado en NetBeans:

Descárgate la clase LectorWebSite.java
No hay comentarios:
Publicar un comentario