網(wǎng)站制作NEWS
使用JAVA請(qǐng)求需要Basic身份驗(yàn)證的網(wǎng)頁(yè)
通過(guò)JAVA抓取頁(yè)面時(shí) 有些頁(yè)面會(huì)返回 (Unauthorized)響應(yīng)狀態(tài)碼和 authenticate響應(yīng)頭來(lái)要求客戶(hù)端進(jìn)行身份認(rèn)證 這種認(rèn)證有兩種方式 BASIC和DIGEST BASIC驗(yàn)證要求客戶(hù)端對(duì)用戶(hù)名和密碼進(jìn)行BASE 編碼后傳送給服務(wù)器 DIGEST的認(rèn)證方式的細(xì)節(jié)比較復(fù)雜 會(huì)經(jīng)過(guò)一系列的加密 所以很難被破譯
JAVA提供一個(gè)用于啟用身份認(rèn)證的類(lèi) 可以支持HTTP協(xié)議中的多個(gè)認(rèn)證方式 這個(gè)類(lèi)是 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 ; // 用戶(hù)名
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
多重隨機(jī)標(biāo)簽