Hello,
How do I do a HTTP GET in Java?
Thanks.
David
Hello,
How do I do a HTTP GET in Java?
Thanks.
David
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 it's 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 want to stream any webpage, you can use the method below.
import java.io.*; import java.net.*; public class c { public String getHTML(String urlToRead) { URL url; HttpURLConnection conn; BufferedReader rd; String line; String result = ""; try { url = new URL(urlToRead); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ((line = rd.readLine()) != null) { result += line; } rd.close(); } catch (Exception e) { e.printStackTrace(); } return result; } public static void main(String args[]) { c c = new c(); System.out.println(c.getHTML(args[0])); } }
The simplest way that doesn't require third party libraries it to create a URL object and then call either openConnection or openStream on it. Note that this is a pretty basic API, so you won't have a lot of control over the headers.
If you dont want to use external libraries, you can use URL and URLConnection classes from standard Java API.
An example looks like this:
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