使用JAVA请求需要Basic身份验证的网页
通过JAVA抓取页面时 有些页面会返回 (Unauthorized)响应状态码和 authenticate响应头来要求客户端进行身份认证 这种认证有两种方式 BASIC和DIGEST BASIC验证要求客户端对用户名和密码进行BASE 编码后传送给服务器 DIGEST的认证方式的细节比较复杂 会经过一系列的加密 所以很难被破译
JAVA提供一个用于启用身份认证的类 可以支持HTTP协议中的多个认证方式 这个类是 Authenticator 使用方法如下
Java 代码
package xixuyishi;
import java io BufferedReader;
import java io InputStream;
import java io InputStreamReader;
import Authenticator;
import PasswordAuthentication;
import URL;
public class RunHttpSpnego {
static final String kuser = username ; // 用户名
static final String kpass = password ; // 密码
static class MyAuthenticator extends Authenticator {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return (new PasswordAuthentication(kuser kpass toCharArray()));
}
}
public static void main(String[] args) throws Exception {
Authenticator setDefault(new MyAuthenticator());
URL url = new URL(args[ ]);
InputStream ins = url openConnection() getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
String str;
while ((str = reader readLine()) != null)
System out println(str);
}
}
lishixinzhi/Article/program/Java/hx/201311/26467
多重随机标签