JDK6.0学习笔记(十六)登陆需要认证的站点
来源:互联网 发布:学生值得买的东西知乎 编辑:程序博客网 时间:2024/05/17 07:40
- 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 {
- private String user = null;
- private String password = null;
- public MyAuthenticator(String user, String password) {
- this.user = user;
- this.password = password;
- }
- protected PasswordAuthentication getPasswordAuthentication() {
- char[] ch = new char[this.password.length()];
- password.getChars(0, this.password.length(), ch, 0);
- return new PasswordAuthentication(this.user, ch);
- }
- }