|
|
| Http server学习版以及通过代理服务器认证 |
作者:
文章来源:
访问次数:1次
加入时间:2005年01月01日
|
|
一、Http Server的最简单版本
这个版本不能在简单了,有助于学习
二、 代理服务器认证的实现 扩展JR开源项目的网络蚂蚁,通过代理服务器,弹出认证窗口。
- import java.io.*;
- import java.net.*;
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- public class URLPassword extends Frame {
- private TextField tf = new TextField();
- private TextArea ta = new TextArea();
- public URLPassword () {
- super("URL Password");
- // 安装 Authenticator
- MyAuthenticator myAuth = new MyAuthenticator();
- Authenticator.setDefault(myAuth);
- // 设置屏幕
- 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[]) {
- Properties systemSettings = System.getProperties();
- systemSettings.put("proxySet", "true");
- systemSettings.put("proxyHost", "202.112.209.106");
- systemSettings.put("proxyPort", "8888");
- System.setProperties(systemSettings);
- 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);
- return new PasswordAuthentication(username.getText(), password.getText().toCharArray());
- }
- }
- }
|
|
|