java http 登陆_java HttpURLConnection 登录网站 完整代码

import java.io.*;import java.util.*;import java.net.*;public classWebTest {public static voidmain(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 voidDownLoadPages(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= newURL(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 = newPrintStream(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(newFile(outPath));

chByte=in.read();while (chByte != -1) {

out.write(chByte);//System.out.println(chByte);

chByte =in.read();

}

}catch(Exception e) {

e.printStackTrace();

}

}public staticString getCookies(HttpURLConnection conn) {

StringBuffer cookies= newStringBuffer();

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

StringTokenizer st= new StringTokenizer(headName, "; ");while(st.hasMoreTokens()) {

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

}

}returncookies.toString();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值