GetWebPage.java Source code

Java tutorial

Introduction

Here is the source code for GetWebPage.java

Source

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class GetWebPage {
    public static void main(String args[]) throws IOException, UnknownHostException {
        String resource, host, file;
        int slashPos;

        resource = "http://www.java2s.com/index.htm".substring(7); // skip HTTP://
        slashPos = resource.indexOf('/');
        if (slashPos < 0) {
            resource = resource + "/";
            slashPos = resource.indexOf('/');
        }
        file = resource.substring(slashPos); // isolate host and file parts
        host = resource.substring(0, slashPos);
        System.out.println("Host to contact: '" + host + "'");
        System.out.println("File to fetch : '" + file + "'");
        MyHTTPConnection webConnection = new MyHTTPConnection(host);
        if (webConnection != null) {
            BufferedReader in = webConnection.get(file);
            String line;
            while ((line = in.readLine()) != null) { // read until EOF
                System.out.println(line);
            }
        }
        System.out.println("\nDone.");
    }

    static class MyHTTPConnection {
        public final static int HTTP_PORT = 80;

        InetAddress wwwHost;

        DataInputStream dataInputStream;

        PrintStream outputStream;

        public MyHTTPConnection(String host) throws UnknownHostException {
            wwwHost = InetAddress.getByName(host);
            System.out.println("WWW host = " + wwwHost);
        }

        public BufferedReader get(String file) throws IOException {
            Socket httpPipe;
            InputStream in;
            OutputStream out;
            BufferedReader bufReader;
            PrintWriter printWinter;
            httpPipe = new Socket(wwwHost, HTTP_PORT);
            if (httpPipe == null) {
                return null;
            }
            // get raw streams
            in = httpPipe.getInputStream();
            out = httpPipe.getOutputStream();
            // turn into useful ones
            bufReader = new BufferedReader(new InputStreamReader(in));
            printWinter = new PrintWriter(new OutputStreamWriter(out), true);
            if (in == null || out == null || bufReader == null || printWinter == null) {
                System.out.println("Failed to open streams to socket.");
                return null;
            }
            // send GET request
            System.out.println("GET " + file + " HTTP/1.0\n");
            printWinter.println("GET " + file + " HTTP/1.0\n");
            // read response until blank separator line
            String response;
            while ((response = bufReader.readLine()).length() > 0) {
                System.out.println(response);
            }
            return bufReader;
        }
    }
}