Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import java.net.UnknownHostException;

class Main {
    public String downloadWWWPage(URL pageURL) throws Exception {
        String host, file;
        host = pageURL.getHost();
        file = pageURL.getFile();

        InputStream pageStream = getWWWPageStream(host, file);
        if (pageStream == null) {
            return "";
        }

        DataInputStream in = new DataInputStream(pageStream);
        StringBuffer pageBuffer = new StringBuffer();
        String line;

        while ((line = in.readUTF()) != null) {
            pageBuffer.append(line);
        }
        in.close();
        return pageBuffer.toString();
    }

    public InputStream getWWWPageStream(String host, String file) throws IOException, UnknownHostException {

        InetAddress webServer = InetAddress.getByName(host);

        Socket httpPipe = new Socket(webServer, 80);
        if (httpPipe == null) {
            System.out.println("Socket to Web server creation failed.");
            return null;
        }

        InputStream inn = httpPipe.getInputStream(); // get raw streams
        OutputStream outt = httpPipe.getOutputStream();

        DataInputStream in = new DataInputStream(inn); // turn into higher-level ones
        PrintStream out = new PrintStream(outt);

        if (inn == null || outt == null) {
            System.out.println("Failed to open streams to socket.");
            return null;
        }
        out.println("GET " + file + " HTTP/1.0\n");

        String response;
        while ((response = in.readUTF()).length() > 0) {
            System.out.println(response);
        }

        return in;
    }
}