柔情似水 发表于 2015-1-16 12:19:39

来谈谈:Java抓取必要客户端身份认证的页面的办理计划

对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
经由过程JAVA抓取页面时,有些页面会前往401(Unauthorized)呼应形态码和www-authenticate呼应头来请求客户端举行身份认证。这类认证有两种体例:BASIC和DIGEST,BASIC考证请求客户端对用户名和暗码举行BASE64编码后传送给服务器。DIGEST的认证体例的细节对照庞大,会经由一系列的加密,以是很难被破译。
JAVA供应一个用于启用身份认证的类,能够撑持HTTP协定中的多个认证体例,这个类是java.net.Authenticator,利用办法以下:
packagecom.xixuyishi;
importjava.io.BufferedReader;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.net.Authenticator;
importjava.net.PasswordAuthentication;
importjava.net.URL;
publicclassRunHttpSpnego{
staticfinalStringkuser="username";//用户名
staticfinalStringkpass="password";//暗码
staticclassMyAuthenticatorextendsAuthenticator{
@Override
publicPasswordAuthentication
getPasswordAuthentication(){
return(newPasswordAuthentication(kuser,
kpass.toCharArray()));
}
}
publicstaticvoidmain(String[]args)throwsException{
Authenticator.setDefault(newMyAuthenticator());
URLurl=newURL(args);
InputStreamins=url.openConnection().getInputStream();
BufferedReaderreader=newBufferedReader(new
InputStreamReader(ins));
Stringstr;
while((str=reader.readLine())!=null)
System.out.println(str);
}
只必要创立一个持续自Authenticator的类,而且重写个中的getPasswordAuthentication()办法,将用户名和暗码放进办法中,如许在必要利用身份认证的中央完成这个类就能够了
</p>
有些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多。

老尸 发表于 2015-1-18 09:42:53

为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。

兰色精灵 发表于 2015-1-25 20:31:35

可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。?

乐观 发表于 2015-2-4 02:53:36

首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。

飘灵儿 发表于 2015-2-9 12:32:12

放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。

仓酷云 发表于 2015-2-27 07:32:21

有疑问前,知识学习前,先用搜索。

柔情似水 发表于 2015-3-9 00:55:13

众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。

飘飘悠悠 发表于 2015-3-16 21:22:05

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。

再现理想 发表于 2015-3-23 05:21:34

我是学习嵌入式方向的,这学期就选修了这门专业任选课。
页: [1]
查看完整版本: 来谈谈:Java抓取必要客户端身份认证的页面的办理计划