java HttpURLConnection 登录网站 完整代码
2024-08-23 01:35:59
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();
}
}
最新文章
- 函数返回多个值(c/c++)
- dragdrop 修改版
- sm4加密 解密(oc)
- hibernate(五)核心开发接口与对象的三种状态
- 【转】Jquery ajax方法解析返回的json数据
- inconsistent line count calculation in projection snapshot
- AppStore占坑注意事项
- 方便的Chrome取色插件ColorPick Eyedropper [设计, FE必备]
- 解决WEB(apache)服务器time_wait过高的性能优化过程
- PHP 初学者的学习线路和建议【1】
- MSYS2使用教程
- Velocity(3)——#set指令
- [Web Service] Tutorial Basic Concepts
- [EXP]Microsoft Windows MSHTML Engine - ";Edit"; Remote Code Execution
- python使用ssdb的队列,用于替换canal+rabbitmq
- 【ORACLE】oracle11g单实例安装
- li分两列显示
- cf-Round542-Div2-C(暴力+DFS)
- Jmeter做并发测试(设置集合点)
- 删除eclipse无效的工作空间路径