¿Cómo puedo obtener contenido HTML de una URL específica en el lado del servidor usando Java?
-
06-07-2019 - |
Pregunta
Estoy diseñando una aplicación que necesita cargar contenido HTML desde una URL específica en el lado del servidor mediante Java. ¿Cómo puedo resolverlo?
Saludos,
Solución
He usado la biblioteca HttpClient de Apache Commons para hacer esto. Echa un vistazo aquí: http://hc.apache.org/httpclient-3.x/tutorial. html
Tiene más funciones que el soporte de cliente HTTP JDK.
Otros consejos
Si todo lo que necesita es leer la URL, no necesita recurrir a bibliotecas de terceros, Java ha incorporado soporte para recuperar las URL.
import java.net.*;
import java.io.*;
public class URLConnectionReader {
public static void main(String[] args) throws Exception {
URL yahoo = new URL("http://www.yahoo.com/");
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
Si fuera php, podría usar cURL , pero como es java, usaría HttpURLConnection , como acabo de descubrir en esta pregunta:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection;
public class URLConetent { public static void main (String [] args) {
URL url;
try {
// get URL content
String a="http://localhost:8080//TestWeb/index.jsp";
url = new URL(a);
URLConnection conn = url.openConnection();
// open the stream and put it into BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null) {
System.out.println(inputLine);
}
br.close();
System.out.println("Done");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}