- /**
- * 登陆需要认证的站点
- * 输入命令 http://127.0.0.1 user password
- * */
- import java.io.PrintWriter;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.BufferedReader;
- import java.io.StringWriter;
- import java.io.IOException;
- import java.net.URL;
- import java.net.Authenticator;
- import java.net.PasswordAuthentication;
- import java.net.MalformedURLException;
- public class TestAuthenticator {
- public static void main(String[] args) {
- Authenticator.setDefault(new MyAuthenticator(args[1], args[2]));//获取用户名和密码
- System.out.println(new TestAuthenticator().fetchURL(args[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("URL无效");
- } catch (IOException e) {
- pw.println("读取URL资源时出错");
- }
- return sw.toString();
- }
- }
- class MyAuthenticator extends Authenticator {//Authenticator类
- private String user = null;
- private String password = null;
- public MyAuthenticator(String user, String password) {
- this.user = user;
- this.password = password;
- }
- protected PasswordAuthentication getPasswordAuthentication() {//返回的PasswordAuthentication对象中给出用户名和密码
- char[] ch = new char[this.password.length()];
- password.getChars(0, this.password.length(), ch, 0);
- return new PasswordAuthentication(this.user, ch);
- }
- }