您的位置:首页 > 理论基础 > 计算机网络

java HttpURLConnection 登录网站 完整代码

2010-01-28 10:41 676 查看
Java代码



import java.io.*;

import java.util.*;

import java.net.*;

public class WebTest {

public static void main(String[] args) {

System.out.println("beging...");

DownLoadPages("http://login.xiaonei.com/Login.do", "d:/fileDown.txt");

// visit("http://www.xiaonei.com");

System.out.println("end.");

}

public static void DownLoadPages(String urlStr, String outPath) {

int chByte = 0;

URL url = null;

HttpURLConnection httpConn = null;

InputStream in = null;

FileOutputStream out = null;

try {

String post = "email=" + URLEncoder.encode("e-mail", "UTF-8")

+ "&password=" + "password";

url = new URL(urlStr);

httpConn = (HttpURLConnection) url.openConnection();

//setInstanceFollowRedirects can then be used to set if

//redirects should be followed or not and this should be used before the

//connection is established (via getInputStream, getResponseCode, and other

//methods that result in the connection being established).

httpConn.setFollowRedirects(false);

//inorder to disable the redirects

httpConn.setInstanceFollowRedirects(false);

httpConn.setDoOutput(true);

httpConn.setDoInput(true);

httpConn.setRequestProperty("User-Agent",

"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");

httpConn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

//ok now, we can post it

PrintStream send = new PrintStream(httpConn.getOutputStream());

send.print(post);

send.close();

URL newURL = new URL(httpConn.getHeaderField("Location"));

System.out.println("the URL has move to "

+ httpConn.getHeaderField("Location"));

httpConn.disconnect();

// OK, now we are ready to get the cookies out of the URLConnection

String cookies = getCookies(httpConn);

System.out.println(cookies);

httpConn = (HttpURLConnection) newURL.openConnection();

httpConn.setRequestProperty("User-Agent",

"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT)");

httpConn.setRequestProperty("Content-Type",

"application/x-www-form-urlencoded");

httpConn.setRequestProperty("Cookie", cookies);

httpConn.setDoInput(true);

in = httpConn.getInputStream();

out = new FileOutputStream(new File(outPath));

chByte = in.read();

while (chByte != -1) {

out.write(chByte);

//System.out.println(chByte);

chByte = in.read();

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static String getCookies(HttpURLConnection conn) {

StringBuffer cookies = new StringBuffer();

String headName;

for (int i = 7; (headName = conn.getHeaderField(i)) != null; i++) {

StringTokenizer st = new StringTokenizer(headName, "; ");

while (st.hasMoreTokens()) {

cookies.append(st.nextToken() + "; ");

}

}

return cookies.toString();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐