Reading Web Pages with Streams : Web Server Client « Network Protocol « Java






Reading Web Pages with Streams

Reading Web Pages with Streams

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; 
    }
  }
}


           
       








Related examples in the same category

1.Java HTTP/HTTPS Server Based on new io
2.Connect with a Web serverConnect with a Web server
3.Reading URLs Protected with HTTP Authentication
4.Reading Web Pages, with Socket ChannelsReading Web Pages, with Socket Channels
5.Reading Web Pages with Nonblocking ChannelsReading Web Pages with Nonblocking Channels
6.A Simple Web ServerA Simple Web Server
7.Web server
8.Save binary file from web