How do I do a HTTP GET in Java? [duplicate] How do I do a HTTP GET in Java? [duplicate] java java

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&param2=value2....";URL url = new URL(urlString);URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();// Do what you want with that stream