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();
}
}
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();
}
}
相关文章推荐
- java HttpURLConnection 登录网站 完整代码
- Java使用HttpURLConnection检索网站时403错误处理方式
- java使用HttpURLConnection检索网站时403错误处理方式
- java代码实现如jsp页面的form请求方式一HttpURLConnection请求
- 关于使用HttpURLConnection登录网站的问题
- Java: HttpURLConnection 模拟登录方法 (带cookie 的Post/Get)_20160908_七侠镇莫尛貝
- [置顶] Android开发之下载服务器上的一张图片到本地java代码实现HttpURLConnection
- Android开发之下载服务器上的一张图片到本地java代码实现HttpURLConnection
- Java乔晓松-httpURLConnection、URL、httpClient、httpPost、httpGet之代码详解篇
- java 高级应用----HttpURLConnection + Pattern----抓取网站分页文本数据+简单整理
- Java乔晓松-httpURLConnection、URL、httpClient、httpPost、httpGet之代码详解篇
- java使用HttpURLConnection检索网站时403错误处理方式
- java使用HttpURLConnection检索网站时403错误处理方式
- 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
- Java使用HttpURLConnection检索网站时403错误处理方式
- Java: HttpURLConnection 模拟登录方法 (带cookie 的Post/Get)_20160908_七侠镇莫尛貝
- 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
- Java利用HttpURLConnection发送post请求上传文件
- 使用Fiddler监听Java HttpURLConnection请求的小技巧
- Android(或者Java)通过HttpUrlConnection向SpringMVC请求数据(数据绑定)