¿Cómo hago un HTTP GET en Java?

¿Cómo hago un HTTP GET en Java?

    Si desea transmitir cualquier página web, puede utilizar el siguiente método.

    import java.io.*; import java.net.*; public class c { public static String getHTML(String urlToRead) throws Exception { StringBuilder result = new StringBuilder(); URL url = new URL(urlToRead); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = rd.readLine()) != null) { result.append(line); } rd.close(); return result.toString(); } public static void main(String[] args) throws Exception { System.out.println(getHTML(args[0])); } } 

    Técnicamente puedes hacerlo con un socket TCP directo. No lo recomendaría sin embargo. Recomiendo encarecidamente que utilice Apache HttpClient en su lugar. En su forma más simple :

     GetMethod get = new GetMethod("http://httpcomponents.apache.org"); // execute method and handle any error responses. ... InputStream in = get.getResponseBodyAsStream(); // Process the data from the input stream. get.releaseConnection(); 

    y aquí hay un ejemplo más completo .

    Si no desea utilizar bibliotecas externas, puede usar las clases URL y URLConnection de la API Java estándar.

    Un ejemplo se ve así:

     String urlString = "http://wherever.com/someAction?param1=value1&param2=value2...."; URL url = new URL(urlString); URLConnection conn = url.openConnection(); InputStream is = conn.getInputStream(); // Do what you want with that stream 

    La forma más simple que no requiere bibliotecas de terceros es crear un objeto URL y luego llamar a openConnection o openStream en él. Tenga en cuenta que esta es una API bastante básica, por lo que no tendrá mucho control sobre los encabezados.