Come posso fare un HTTP GET in Java?

Come posso fare un HTTP GET in Java?

Se desideri eseguire lo streaming di qualsiasi pagina web, puoi utilizzare il metodo seguente.

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])); } } 

Tecnicamente si potrebbe fare con un socket TCP dritto. Non lo raccomanderei comunque. Ti consiglio vivamente di utilizzare Apache HttpClient . Nella sua forma più semplice :

 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(); 

e qui c’è un esempio più completo .

Se non si desidera utilizzare librerie esterne, è ansible utilizzare le classi URL e URLConnection dall’API Java standard.

Un esempio è simile a questo:

 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 

Il modo più semplice per non richiedere librerie di terze parti è creare un object URL e quindi chiamare openConnection o openStream su di esso. Nota che questa è un’API piuttosto semplice, quindi non avrai molto controllo sulle intestazioni.