How do I do a HTTP GET in Java? [duplicate]
If you want to stream any webpage, you can use the method below.
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"); try (BufferedReader reader = new BufferedReader( new InputStreamReader(conn.getInputStream()))) { for (String line; (line = reader.readLine()) != null; ) { result.append(line); } } return result.toString(); } public static void main(String[] args) throws Exception { System.out.println(getHTML(args[0])); }}
Technically you could do it with a straight TCP socket. I wouldn't recommend it however. I would highly recommend you use Apache HttpClient instead. In its simplest form:
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();
and here is a more complete example.
If you dont want to use external libraries, you can use URL and URLConnection classes from standard Java API.
An example looks like this:
String urlString = "http://wherever.com/someAction?param1=value1¶m2=value2....";URL url = new URL(urlString);URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();// Do what you want with that stream