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();
}
}

最新文章

  1. 函数返回多个值(c/c++)
  2. dragdrop 修改版
  3. sm4加密 解密(oc)
  4. hibernate(五)核心开发接口与对象的三种状态
  5. 【转】Jquery ajax方法解析返回的json数据
  6. inconsistent line count calculation in projection snapshot
  7. AppStore占坑注意事项
  8. 方便的Chrome取色插件ColorPick Eyedropper [设计, FE必备]
  9. 解决WEB(apache)服务器time_wait过高的性能优化过程
  10. PHP 初学者的学习线路和建议【1】
  11. MSYS2使用教程
  12. Velocity(3)——#set指令
  13. [Web Service] Tutorial Basic Concepts
  14. [EXP]Microsoft Windows MSHTML Engine - "Edit" Remote Code Execution
  15. python使用ssdb的队列,用于替换canal+rabbitmq
  16. 【ORACLE】oracle11g单实例安装
  17. li分两列显示
  18. cf-Round542-Div2-C(暴力+DFS)
  19. Jmeter做并发测试(设置集合点)
  20. 删除eclipse无效的工作空间路径

热门文章

  1. jQuery学习之二 jQuery选择器
  2. 网络流入门 Drainage Ditches
  3. [转]wcf系列学习——服务托管
  4. maven打包需要设置main-class的插件写法
  5. 大神note3千元指纹机,这是要逼疯友商吗
  6. Java怎样获取Content-Type的文件类型Mime Type
  7. POJ-2201-Cartesian Tree(笛卡尔树)
  8. 高阶MapReduce_1_链接多个MapReduce作业
  9. hdu4430之枚举+二分
  10. oc57--Category 分类