利用Authenticator技术访问proxy外部http server
来源:互联网 发布:北京哪有淘宝拍照的店 编辑:程序博客网 时间:2024/06/07 00:44
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>利用Authenticator技术访问外部http server。import java.io.*;import java.net.*;import java.awt.*;import java.awt.event.*;public class URLPassword extends Frame {private TextField tf = new TextField();private TextArea ta = new TextArea();public URLPassword() {super ("URL Password");// 安装 AuthenticatorAuthenticator.setDefault (new MyAuthenticator ());// 设置屏幕add (tf, BorderLayout.NORTH);ta.setEditable(false);add (ta, BorderLayout.CENTER);tf.addActionListener (new ActionListener() {public void actionPerformed (ActionEvent e) {String s = tf.getText();if (s.length() != 0)ta.setText (fetchURL (s));}});addWindowListener (new WindowAdapter() {public void windowClosing (WindowEvent e) {dispose();System.exit(0);}});}private String fetchURL (String urlString) {StringWriter sw = new StringWriter();PrintWriter pw = new PrintWriter(sw);try {URL url = new URL (urlString);InputStream content = (InputStream)url.getContent();BufferedReader in =new BufferedReader (new InputStreamReader (content));String line;while ((line = in.readLine()) != null) {pw.println (line);}} catch (MalformedURLException e) {pw.println ("Invalid URL");} catch (IOException e) {pw.println ("Error reading URL");}return sw.toString();}public static void main (String args[]) {Frame f = new URLPassword();f.setSize(300, 300);f.setVisible (true);}class MyAuthenticator extends Authenticator {protected PasswordAuthentication getPasswordAuthentication() {final Dialog jd = new Dialog (URLPassword.this, "Enter password", true);jd.setLayout (new GridLayout (0, 1));Label jl = new Label (getRequestingPrompt());jd.add (jl);TextField username = new TextField();username.setBackground (Color.lightGray);jd.add (username);TextField password = new TextField();password.setEchoChar ('*');password.setBackground (Color.lightGray);jd.add (password);Button jb = new Button ("OK");jd.add (jb);jb.addActionListener (new ActionListener() {public void actionPerformed (ActionEvent e) {jd.dispose();}});jd.pack();jd.setVisible(true);String pass= new String(password.getText());return new PasswordAuthentication (username.getText(),pass.toCharArray());}}}