12306多线程抢票
public static void qp() throws ClientProtocolException, IOException {
HttpClientBuilder builder = HttpClientBuilder.create();
CloseableHttpClient client = builder.build();
//执行
// phone="18210752971";
// String url="http://10.41.123.204:8080/clouds/hunter/phonesearch!getPhoneMes.action?phone="+phone;
// String url="https://kyfw.12306.cn/otn/leftTicketPrice/query?leftTicketDTO.train_date=2019-02-02&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SNV&leftTicketDTO.ticket_type=1&randCode=";
String url="https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-02-02&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SNV&purpose_codes=ADULT";
// String url="http://127.0.0.1:8088/dc/listDates";
HttpUriRequest httpGet = new HttpGet(url);
// System.out.println("22222222222222");
CloseableHttpResponse response1 = client.execute(httpGet);
HttpEntity entity = response1.getEntity();
String jsonStr="";
if(entity!=null){
jsonStr = EntityUtils.toString(entity,"utf-8");
// System.out.println(""+jsonStr);
}
System.out.println("*****jsonStr********"+jsonStr);
JSONObject response = null;
response = JSONObject.fromObject(jsonStr);
System.out.println("**************"+response);
String jsons=response.getString("data");
JSONObject res = null;
res = JSONObject.fromObject(jsons);
System.out.println("*****res*****"+res);
System.out.println("****result*****"+res.getString("result"));
String s= res.getString("result").substring(2,res.getString("result").length()-2);
System.out.println("s的长度"+s);
String[] split = s.split("|");
int a=0;
for (int i = 0; i < split.length; i++) {
if("无".equals(split[i])) {
a++;
}
}
if(a<4) {
//发送短信购票
System.out.println("请前去购票"+a);
JOptionPane.showMessageDialog(null, "You input is "+"请前去购票", "请前去购票", JOptionPane.PLAIN_MESSAGE);
}else {
System.out.println("暂时无票请等待"+a);
}
}
public static void main(String[] args) throws ClientProtocolException, IOException {
Ticket ticket=new Ticket();
// 实例化几个抢票用户
Thread mary = new Thread(ticket, "玛丽");
Thread jack = new Thread(ticket, "杰克");
Thread jack1 = new Thread(ticket, "卢杰");
Thread jack2 = new Thread(ticket, "你好");
Thread jack3 = new Thread(ticket, "测试");
Thread jack4 = new Thread(ticket, "张三");
Thread jack5 = new Thread(ticket, "李四");
Thread jack6 = new Thread(ticket, "王五");
Thread jack7 = new Thread(ticket, "陈六");
Thread jack8 = new Thread(ticket, "赵四");
mary.start();
jack.start();
jack1.start();
jack2.start();
jack3.start();
jack4.start();
jack5.start();
jack6.start();
jack7.start();
jack8.start();
/*qp();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
};*/
}
}
class Ticket implements Runnable {
boolean flag = false;
@Override
public void run() {
while (true) {
try {
try {
Thread.sleep(100);
new S12306Controller().qp();
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
12306多线程抢票相关推荐
- 多线程抢票_java多线程下模拟抢票
我们设置三个对象分别同时抢20张票,利用多线程实现. public class Web123506 implements Runnable{ private int ticteksNums=20;// ...
- 12306 分流抢票 纯净绿色版
全程自动抢票,云打码自动识别验证码,多线程秒单.稳定捡漏,支持多天.多车次.短信提醒. 12306Bypass,12306分流抢票软件,完全免费的12306抢票软件,功能强易使用,全程自动抢票,云 ...
- 多线程抢票_一个人干掉黄牛 双系统多线程抢票指南
原标题:一个人干掉黄牛 双系统多线程抢票指南 圣诞刚过,元旦将至,广大游子无不盼望归乡.他们纷纷把回家过节的全部希望倾注在一张薄薄车票上,却在买票时无奈遭遇各种障碍.先是12306的奇葩验证码刷新了人 ...
- python编写12306窗体抢票软件(二)
python编写12306窗体抢票软件(二) 本文这次介绍如何获取12306网站的验证码并登陆. 1 获取验证码 12306它是一个服务器,每次我们访问它都是以客户端的方式去向它索取信息. 建议用谷歌 ...
- 用python写12306系统_Python实现12306火车票抢票系统
Python实现12306火车票抢票系统 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python实现12306火车票抢票系统.txt ] (友情提示:右键点 ...
- 12306自动抢票及自动识别验证码功能(一)
其实12306抢票之前有做过,近年来随着技术的发展AI的兴起,我也随波逐流,研究了下python深度学习,来实现12306全自动抢票工具. 1. 实现12306自动识别验证码,我这里用的比较简单,目前 ...
- 基于python的火车票订票系统的设计与实现_Python实现12306火车票抢票系统
Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...
- Python大牛带你实现12306全自动抢票,学完后春运回家抢票无忧
随着2018年春节的脚步日益临近,归心似箭的人们都希望能尽快赶回家中.中国人回家过年,是每个人一年中最重要的事,无论你离家远近.在所有的交通工具中,承担着最大客流量的交通工具,毫无疑问是火车.中国庞大 ...
- 多线程抢票_多线程抢票案例
说明: 利用多线程对网络抢票进行模拟演示. 技术点: (1)实现Runnable接口 (2)重写run方法 (3)创建Thread对象调用start()方法 (4)线程锁 (5)线程休眠 packag ...
最新文章
- 服务器端大文件如何传给客户端,客户端往服务器传文件
- Distributed System: Lamport clock vs Vector clock | 分布式系统:Lamport clock 和 Vector clock 详解
- linux java 共享内存_Linux进程间通信之共享内存
- java线程池之一:创建线程池的方法
- oracle中ak约束,Oracle自定义聚集函数
- 触发器中的 Inserted表和Deleted表
- 《Java核心技术》基于Java 17全面升级
- 四足机器人动力学建模(一)
- xcode打包IPA(完整详细图文)
- 配电网PMU优化配置与状态估计(Matlab代码实现)
- Java实现 蓝桥杯 算法提高 日期计算
- icarus主题的博客加载太慢
- 【有利可图网】PS实战系列:果汁喷溅的效果,你知道是怎么做的吗?
- 【python】微博热点话题舆情聚类分析
- C#获取当前时间毫秒值
- Python-100-days学习笔记(一)
- MySQL索引底层:B+树详解
- AsciiDoc 相关资源
- 群晖docker安装chrome
- FRDM-KL25Z开发板之殇