java 作为客户端发送http post请求登录网站首页。 HTTP/1.1 302 Found
2012-08-27 12:52
549 查看
尝试的一个网站,发现它的登录页面是会自动跳转的,再请求的话则会退回登录页面很是苦恼。提示: HTTP/1.1 302 Found
import org.apache.http.*;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet("http://××××××.me/signin");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
HttpPost httppost = new HttpPost("http://××××××.me/signin"); //用户登录
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("signin_email", "207980892@qq.com"));
nvps.add(new BasicNameValuePair("signin_password", "111111"));
httppost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
response = httpclient.execute(httppost);
entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println("Post logon cookies:");
cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
/*String sessionID = response.getFirstHeader("Set-Cookie").getValue();
httppost.addHeader("Cookie", sessionID);
new DefaultHttpClient().execute(httppost);*/ //绑定session 其实ClientCookie可以重新获得cookie属性
String url = ""; //页面跳转
Header locationHeader = response.getFirstHeader("Location");
System.out.println(locationHeader.getValue());
if (locationHeader != null) {
url = locationHeader.getValue(); // 得到跳转href
HttpGet httpget1 = new HttpGet("http://××××××.me" + url);
response = httpclient.execute(httpget1);
// 登陆成功。。。hoho
}
entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
//访问网站的子网页。
HttpGet httpget1 = new HttpGet("http://××××××.me/setting"); //设置个人信息页面
response = httpclient.execute(httpget1);
entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
} finally {
httpclient.getConnectionManager().shutdown();
}
}
}
import org.apache.http.*;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet("http://××××××.me/signin");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
HttpPost httppost = new HttpPost("http://××××××.me/signin"); //用户登录
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("signin_email", "207980892@qq.com"));
nvps.add(new BasicNameValuePair("signin_password", "111111"));
httppost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
response = httpclient.execute(httppost);
entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println("Post logon cookies:");
cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
/*String sessionID = response.getFirstHeader("Set-Cookie").getValue();
httppost.addHeader("Cookie", sessionID);
new DefaultHttpClient().execute(httppost);*/ //绑定session 其实ClientCookie可以重新获得cookie属性
String url = ""; //页面跳转
Header locationHeader = response.getFirstHeader("Location");
System.out.println(locationHeader.getValue());
if (locationHeader != null) {
url = locationHeader.getValue(); // 得到跳转href
HttpGet httpget1 = new HttpGet("http://××××××.me" + url);
response = httpclient.execute(httpget1);
// 登陆成功。。。hoho
}
entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
//访问网站的子网页。
HttpGet httpget1 = new HttpGet("http://××××××.me/setting"); //设置个人信息页面
response = httpclient.execute(httpget1);
entity = response.getEntity();
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
}
// 显示结果
reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
} finally {
httpclient.getConnectionManager().shutdown();
}
}
}
相关文章推荐
- Java客户端通过Http发送POST请求上传文件到web服务器
- Java客户端通过Http发送POST请求上传文件到web服务器
- java发送http的get、post请求 登录返JSON
- Java客户端通过Http发送POST请求上传文件到web服务器
- java发送http的get、post请求
- Java后台模拟发送http的get和post请求,并测试
- java发送http的两种请求方式——get、post
- java发送http的get、post请求
- Java发送HTTP POST请求(内容为xml格式)
- java发送http的get、post请求
- Java发送http的get、post请求
- java发送http的get、post请求
- 【使用Java原生API编写发送HTTP_POST请求的工具类】
- java发送http的get、post请求
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- java发送http的get、post请求,测试端口是否通
- HttpClient详解,Java发送Http的post、get方式请求 --待整理
- Java发送HTTP的POST和GET方式请求
- 使用java代码发送HTTP Post请求
- Java利用HttpURLConnection发送post请求上传文件