// This appears in Core Web Programming from // Prentice Hall Publishers, and may be freely used // or adapted. 1997 Marty Hall, hall@apl.jhu.edu. // Modified by Nong Lin, Nov. 1999 import java.awt.*; import java.net.*; import java.io.*; import java.lang.*; public class HttpClient extends NetworkClient { private String requestLine; private summaryResult summaryresult; private TextArea outputArea, summaryArea; private Interruptable app; public HttpClient(String host, int port, String requestLine, //summaryResult summaryresult, TextArea summaryArea, TextArea outputArea, Interruptable app) { super(host, port); this.requestLine = requestLine; this.summaryArea = summaryArea; this.outputArea = outputArea; this.app = app; if (checkHost(host)) connect(); System.out.println("HttpClient constructor"); } protected void handleConnection(Socket uriSocket) throws IOException { try { SocketUtil s = new SocketUtil(uriSocket); PrintStream out = s.getPrintStream(); DataInputStream in = s.getDataStream(); summaryArea.setText("For Simple, only Page Title shown here:----"); outputArea.setText(""); out.println(requestLine); System.out.println("Http" +requestLine); out.println(); String line; String bufferline=""; while ((line = in.readLine()) != null && !app.interrupted()) { bufferline=bufferline + line; outputArea.appendText(line + "\n"); } System.out.println("bufferline: --" + bufferline); summaryresult = parseHtml(bufferline,0); summaryArea.appendText(summaryresult.getTitle()); if (app.interrupted()) outputArea.appendText("---- Download " + "Interrupted ----"); } catch(Exception e) { outputArea.setText("Error: " + e); } } private summaryResult parseHtml(String htmlPage, int beginindex) { summaryResult summaryresult; String title = null; String paragraph = null; int endindex = 0; // find title System.out.println("parse HTML"); endindex = htmlPage.indexOf("