package edu.pdx.cs410J.web;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
/**
* Demonstrates making an HTTP GET request using the {@link java.net.URLConnection} class
*
* @author David Whitlock
* @since Summer 2008
*/
public class UrlHttpGet {
/**
* Fetches the content of a URL using an HTTP GET
*
* @param urlString The URL to GET
* @throws java.io.IOException If a problem occurs while reading URL
*/
private static void getURL(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();
PrintStream out = System.out;
out.println("Headers");
Map<String,List<String>> headers = conn.getHeaderFields();
for (String key : headers.keySet() ) {
out.print(" ");
if (key != null) {
out.print(key + ": ");
}
for (String value : headers.get(key)) {
out.print(value);
}
out.println("\n");
}
out.println("\nContent");
out.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
do {
out.println(br.readLine());
} while (br.ready());
br.close();
}
public static void main(String[] args) throws IOException {
String url = null;
for (String arg : args) {
if (url == null) {
url = arg;
} else {
usage("Extraneous command line argument: " + arg);
}
}
if (url == null) {
usage("Missing URL");
}
getURL(url);
}
private static void usage(String message) {
PrintStream err = System.err;
err.println("** " + message);
err.println("usage: java UrlHttpGet url");
System.exit(1);
}
}