web登陸無非就是網(wǎng)頁獲取,cookie 的管理,post和get方式的模擬。
1.網(wǎng)頁內(nèi)容獲取
java.io.InputStream in;
java.net.URL url = new java.net.URL(www.xyz.com/content.html);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection)
url.openConnection();
connection = (java.net.HttpURLConnection) url.openConnection();
//模擬成IE
connection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
connection.connect();
in = connection.getInputStream();
java.io.BufferedReader breader =
new BufferedReader(new InputStreamReader(in , "GBK"));
String str=breader.readLine());
while(st != null){
System.out.println(str);
str=breader.readLine());
}
2.cookie管理 1.直接的方式 取得cookie: HttpURLConnection huc= (HttpURLConnection) url.openConnection(); |
InputStream is = huc.getInputStream(); |
String cookieVal = hc.getHeaderField("Set-Cookie"); |
sessionId = cookieVal.substring(0, cookieVal.indexOf(";")); |
} HttpURLConnection huc= (HttpURLConnection) url.openConnection(); | huc.setRequestProperty("Cookie", sessionId); | InputStream is = huc.getInputStream(); | |
2.利用的jcookie包(http://jcookie.sourceforge.net/ )
獲取cookie:
URL url = new URL("http://www.site.com/"); |
HttpURLConnection huc = (HttpURLConnection) url.openConnection(); |
InputStream is = huc.getInputStream(); |
Client client = new Client(); |
CookieJar cj = client.getCookies(huc); |
新的請求,利用上面獲取的cookie:
url = new URL("http://www.site.com/"); |
huc = (HttpURLConnection) url.openConnection(); |
client.setCookies(huc, cj); |
3.post方式的模擬
URL url = new URL("www.xyz.com");
HttpURLConnection huc = (HttpURLConnection) url.openConnection();
//設(shè)置允許output
huc.setDoOutput(true);
//設(shè)置為post方式
huc.setRequestMethod("POST");
huc.setRequestProperty("User-Agent","Mozilla/4.7 [en] (Win98; I)");
StringBuffer sb = new StringBuffer();
sb.append("userName="+userNme);
sb.append("&password="+password);
//post信息
OutputStream os = huc.getOutputStream();
os.write(sb.toString().getBytes("GBK"));
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader(huc.getInputStream()))
huc.connect();
String line = br.readLine();
while(line != null){
l
System.out.printli(line);
line = br.readLine();
}
結(jié)束語:
上面的代碼基本就可以實(shí)現(xiàn)網(wǎng)站的登陸、信息獲取的功能??吹降顷懫姹溶浖u的那么火,我們也做一個(gè)去吧!.
參考:
1.A recipe for cookie management
http://www.javaworld.com/javaworld/jw-04-2002/jw-0426-cookie.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。