A Web Page Source Viewer : HttpURLConnection « Network « Java Tutorial






import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Main extends JFrame {
  JButton go = new JButton("Get Source");

  JTextArea codeArea = new JTextArea();

  public Main() {
    JPanel inputPanel = new JPanel(new BorderLayout(3, 3));
    go.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        try {
          URL pageURL = new URL("http://www.google.com");
          HttpURLConnection urlConnection = (HttpURLConnection) pageURL.openConnection();
          int respCode = urlConnection.getResponseCode();
          String response = urlConnection.getResponseMessage();
          codeArea.setText("HTTP/1.x " + respCode + " " + response + "\n");
          int count = 1;
          while (true) {
            String header = urlConnection.getHeaderField(count);
            String key = urlConnection.getHeaderFieldKey(count);
            if (header == null || key == null) {
              break;
            }
            codeArea.append(urlConnection.getHeaderFieldKey(count) + ": " + header + "\n");
            count++;
          }
          InputStream in = new BufferedInputStream(urlConnection.getInputStream());
          Reader r = new InputStreamReader(in);
          int c;
          while ((c = r.read()) != -1) {
            codeArea.append(String.valueOf((char) c));
          }
          codeArea.setCaretPosition(1);
        } catch (Exception ee) {
        }
      }
    });
    inputPanel.add(BorderLayout.EAST, go);
    JScrollPane codeScroller = new JScrollPane(codeArea);
    add(BorderLayout.NORTH, inputPanel);
    add(BorderLayout.CENTER, codeScroller);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setSize(700, 500);
    this.setVisible(true);
  }

  public static void main(String[] args) {
    JFrame webPageSourceViewer = new Main();
  }
}








19.6.HttpURLConnection
19.6.1.Get the date of a url connection
19.6.2.Get the document expiration date
19.6.3.Get the document Last-modified date
19.6.4.Show the content type
19.6.5.Show the content length
19.6.6.Display request method
19.6.7.Get response code
19.6.8.Display response message
19.6.9.Display header information
19.6.10.Download and display the content
19.6.11.A Web Page Source Viewer
19.6.12.Reading from a URLConnection
19.6.13.Use BufferedReader to read content from a URL
19.6.14.Check if a page exists
19.6.15.Identify ourself to a proxy
19.6.16.Connect through a Proxy
19.6.17.java.net.Authenticator can be used to send the credentials when needed
19.6.18.Read data from a URL
19.6.19.Dump a page using the HTTPS protocol
19.6.20.Save URL contents to a file
19.6.21.Http connection Utilities
19.6.22.Parsing and formatting HTTP dates as used in cookies and other headers.
19.6.23.Last Modified
19.6.24.URL connection and proxy
19.6.25.Http Constants
19.6.26.Http Header Helper
19.6.27.A utility class for parsing HTTP dates as used in cookies and other headers