import java.awt.*; import java.applet.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.net.*; import javax.net.ssl.*; public class Browser extends JFrame { //private JTextField tf = new JTextField("https://www.verisign.com/"); private JTextField tf = new JTextField("https://65.205.249.60/"); private JTextArea ta = new JTextArea(); public static void main(String[] args) { new Browser(); } public Browser() { tf.setColumns(40); tf.addActionListener(new L()); JPanel p = new JPanel(); p.setLayout(new FlowLayout()); p.add(tf); getContentPane().add("North", p); getContentPane().add("Center", new JScrollPane(ta)); setSize(640, 400); show(); getPageFromNet(); } private void getPageFromNet() { StringBuffer buf = new StringBuffer(); try{ URL url = new URL(tf.getText()); BufferedReader br = null; if(url.getProtocol().equals("https")) { HttpsURLConnection huc = (HttpsURLConnection)url.openConnection(); huc.setHostnameVerifier(new HTTPClientVerifier()); br = new BufferedReader(new InputStreamReader(huc.getInputStream())); } else { URLConnection uc = url.openConnection(); br = new BufferedReader(new InputStreamReader(uc.getInputStream())); } String content = ""; String s = null; while((s = br.readLine()) != null) { content = content + s + "\n"; } ta.setText(content); } catch(IOException e) { ta.setText("Error occured!"); } } class L implements ActionListener { public void actionPerformed(ActionEvent ae) { getPageFromNet(); Toolkit.getDefaultToolkit().beep(); } } class HTTPClientVerifier implements HostnameVerifier { public boolean verify(String url, SSLSession sslSession) { try { InetAddress ia1 = InetAddress.getByName(url); InetAddress ia2 = InetAddress.getByName(sslSession.getPeerHost()); return ia1.equals(ia2); } catch(Exception e) { return false; } } } }