package com.lihan;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
public class Test
{
static final String LOGON_SITE = "http://mail.163.com";
static final int LOGON_PORT = 80;
public static void main(String[] args) throws Exception
{
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT);
//登录
PostMethod post = new PostMethod(
"http://reg.163.com/logins.jsp?type=1&url=http://fm163.163.com/coremail/fcg/ntesdoor2?lightweight=1&verifycookie=1&language=-1&style=16");
NameValuePair username = new NameValuePair("username", "你的用户名@163.com");
NameValuePair password = new NameValuePair("password", "你的密码");
post.setRequestBody(new NameValuePair[] { username, password });
client.executeMethod(post);
String responseString = new String(post.getResponseBodyAsString().getBytes(
"gbk"));
System.out
.println("=========================登录页面===========================");
System.out.println(responseString);
Cookie[] cookies = client.getState().getCookies();
client.getState().addCookies(cookies);
post.releaseConnection();
int startPos = responseString
.indexOf("http://reg.youdao.com/crossdomain.jsp?username=");
int endPos = responseString.indexOf("\"", startPos + 1);
String newUrl = responseString.substring(startPos, endPos);
System.out
.println("===========================第一次页面转向============================");
System.out.println(newUrl);
//以get方式请求跳转页面
GetMethod get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
responseString = new String(get.getResponseBodyAsString().getBytes("gbk"));
//向控制台打印登陆后页面的html
System.out
.println("==========================第一次转向后的页面==================================");
System.out.println(responseString);
get.releaseConnection();
startPos = responseString.indexOf("http://fm163.163");
endPos = responseString.indexOf("\"", startPos + 1);
newUrl = responseString.substring(startPos, endPos);
System.out
.println("=============================第二次页面转向=======================================");
System.out.println(newUrl);
get = new GetMethod(newUrl);
get.setRequestHeader("Cookie", cookies.toString());
client.executeMethod(get);
responseString = new String(get.getResponseBodyAsString().getBytes("gbk"));
System.out.println("==========================第二次转向后的页面=============================");
System.out.println(responseString);
get.releaseConnection();
}
}
分享到:
相关推荐
- `HttpClient`实例化:创建一个`HttpClient`对象,可以设置连接超时、重试策略等参数。 - `HttpGet`与`HttpPost`:分别用于发送GET和POST请求。设置请求URL,并可添加请求头或参数。 - `HttpResponse`处理:执行...
下面是一个简单的使用HttpClient登录网易相册的步骤: 1. 创建`CloseableHttpClient`实例: ```java CloseableHttpClient httpClient = HttpClients.createDefault(); ``` 2. 创建`HttpPost`对象,并设置目标...
// 创建HttpClient实例 HttpClient httpClient = new HttpClient(); // 获取验证码图片URL,例如:https://login.163.com/v2/public/getCaptcha?product=mail&rand=sj&v=2&t=1234567890 string captchaUrl = ...
如果需要实现对URL的访问监控,可以定时检查URL的可达性,如使用`HttpURLConnection`或者第三方库如`HttpClient`。当检测到异常时,调用上述邮件发送逻辑,将异常信息和相关URL作为邮件内容发送。 在项目中,你...
首先,我们需要导入`System.Net.Http`命名空间,创建一个HttpClient实例,并使用其GetAsync方法来请求163邮箱的验证码页面。例如: ```csharp using System.Net.Http; using System.Threading.Tasks; public async...
5. **网络编程**:介绍HttpURLConnection、HttpClient、OkHttp等网络请求库的使用,以及异步处理和JSON解析。 6. **多媒体处理**:涉及音频、视频的播放,图像的加载和处理,如使用Glide或Picasso库进行图片加载。 7...
以下是一个简单的示例: ```csharp using System.Net.Http; using System.Threading.Tasks; public async Task<string> GetExternalIp() { using (var client = new HttpClient()) { var response = await ...
5.2.1 一个简单的例子:绘制立方体 169 5.2.2 理解变换 175 5.2.3 投影变换 177 5.2.4 视口变换 179 5.2.5 矩阵堆栈 180 5.3 绘制图元 180 5.3.1 图元种类 180 5.3.2 指定顶点数据 182 5.3.3 绘制图元 186 5.4 颜色...
以下是一个简单的C#调用新浪微博API的实例代码: ```csharp using System; using System.Net; using System.IO; using System.Text; public class SinaWeiboAPI { private string address = ...
wechat develop framework for java(微信开发框架JAVA版,最简单易用微信开发框架) ##wechat4j可以用来干什么? wechat4j是一个帮助你开发微信应用的jar包,使用它,你开发微信公众号应用只需要几秒钟的时间,完全...
9.40、通过HTTPCLIENT从指定SERVER获取数据 265 9.41、通过FTP传输文件,关闭UI获得返回码 266 9.42、激活JAVASCRIPT打开内部链接 266 9.43、清空手机COOKIES 267 9.44、检查SD卡是否存在并且可以写入 267 9.45、...
6.3.2 简单列表项对话框 109 6.3.3 单选项列表项对话框 111 6.3.4 复选框列表项对话框 113 6.3.5 复杂布局列表项对话框 115 6.4 Android国际化和本地化 118 本章小结 121 第7章 UI布局 122 7.1 FrameLayout ...