java编程几行代码实现买菜自由

目录
  • 前言
  • 实现思路
    • 抓包
    • 编码

前言

请允许我标题夸张一下,其实并不是真正买菜自由,我想买什么买什么,只不过通过代码来代替自己做一些事情。

博主人在上海,这边什么情况大家也都清楚,所以买菜就是生 gou 存 huo 的首要条件。

之前每天抱着手机刷叮咚,熬夜早起抢菜,大多数都是无用功,你根本抢不到。直到大奇分享了我一个程序,抢菜问题算是解决了。

但是这一切都有一个很重要的前提,你的购物车里首先得有货 T_T 。

我知道叮咚每天不定时会有一些东西放出来可以捡漏,但是我又不想经常抱着刷机,咋办?当然是求助于代码了。

实现思路

思路就很简单,两步走:

  • 抓包,分析目标接口。
  • 代码调用接口。

抓包

我是window10系统,用的 fiddler 进行抓包,这里可以直接打开微信PC版上的叮咚小程序进行抓包,很方便。

据我手动操作时候观察,在首页分类的下方列表会出现一些可以捡漏的商品。因为站点处于上海,所以这个列表商品数量很少,那就它了。

接口路径是/search/rankingList,也想试试的童鞋就不用自己再去找了。

接着就是分析接口,拿到请求入参,请求头,响应体,这里就不作赘述了。

编码

编码的话,我就直接在抢菜的程序上新增了,因为之前的代码里已经做好了一些请求头固定参数的配置了。实际上你怎么写都行,只要可以模拟请求就好。

程序的实现,我的需求大概是这样:

  • 可以定时的去请求接口。
  • 我入参是个列表,里面是我需要的商品名称。
  • 当接口里存在我的商品的时候,播放一分钟铃声提醒我。
  • 一些其他的异常处理。

代码很简单,这里使用 hutool 里提供的库去发起 http 请求。

我在接口的返回里一直拿到list这个节点,这里面都是商品。然后简单粗暴转为字符串,再遍历我的目标商品,看看是否存在,存在就播放一分钟铃声,返回true

接下来再另一个类,main 方法里调用上面的方法。

这里我们千万不要暴力调用叮咚的接口,所以我设置了等待时间,间隔时间在 30s 到 60s 之间,最后运行程序即可。

作为一名测试猿,自己写的程序还是要测试一番的,调试各种情况没问题后就跑起来吧。

好吧,一边水文一边等待我的铃声响起。。。

希望疫情早点结束,回归正常生活。

以上就是java编程几行代码实现买菜自由的详细内容,更多关于java编程买菜的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java实战之校园外卖点餐系统的实现

    目录 一.项目简述 二.效果图展示 三.核心代码 管理员controller控制层 管理员角色controler控制层 后台登录控制层 订单模块controller控制层 一.项目简述 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + css + JavaScript + JQuery + Ajax

  • java实现简易外卖订餐系统

    用java实现简易外卖订餐系统,供大家参考,具体内容如下 一.使用技术 javaSE 二.实现功能 外卖订餐系统 具体要求如下: 使用选择结构,循环结构,数组的知识实现一个外卖订餐系统 三.运行效果图 1.订餐功能 2.查看餐袋 3.签收订单 4.删除订单 5.点赞 6.退出 代码实现 public class Order { public static void main(String[] args) { int zero = 1; int x = 0;//订单数组下标 String[] na

  • java实现饭店点菜系统

    本文实例为大家分享了java实现饭店点菜系统的具体代码,供大家参考,具体内容如下 JAVA实现饭店点菜系统 在这个暑假,我会将一些网络上比较经典的java编程练习题. 做一做,发布到博客来.是对我自己学习的监督,也是为了方便大家借鉴学习交流.大家一起共同进步. 这个点菜系统,和我之前Java课程设计中的小学生数学练习有点像.不过少了文件操作,相对比较简单. 我实现的效果 如图 最重要的 还是面向对象的思想,我们要理解并使用. 1.在点菜系统中,我们为了方便 饭店添加菜谱 ,我们要使用一个list

  • java实现简单的小超市程序

    本文实例为大家分享了java实现小超市程序的具体代码,供大家参考,具体内容如下 一.人物包 1.顾客类 package person; public class Customer { public String name; public double money; public boolean isDrivingCar; } 二.超市包 1.小超市类 package supermarket; public class LittleSuperMarket { public String super

  • java编程几行代码实现买菜自由

    目录 前言 实现思路 抓包 编码 前言 请允许我标题夸张一下,其实并不是真正买菜自由,我想买什么买什么,只不过通过代码来代替自己做一些事情. 博主人在上海,这边什么情况大家也都清楚,所以买菜就是生 gou 存 huo 的首要条件. 之前每天抱着手机刷叮咚,熬夜早起抢菜,大多数都是无用功,你根本抢不到.直到大奇分享了我一个程序,抢菜问题算是解决了. 但是这一切都有一个很重要的前提,你的购物车里首先得有货 T_T . 我知道叮咚每天不定时会有一些东西放出来可以捡漏,但是我又不想经常抱着刷机,咋办?当

  • Java编程异常简单代码示例

    练习1 写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形.如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c "不能构成三角形":如果可以构成则显示三角形三个边长.在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常. 两边之和大于第三边:a+b>c 两边之差小于第三边:c-a package 异常; import java.util.Arrays; import java

  • java编程队列数据结构代码示例

    队列是一种特殊的线性表,只允许在表的前端进行删除,在表的后端进行插入,表的前端称为(front)队头,表的后端称为(rear)队尾. 所以队列跟生活的场景很是相似,在电影院买电影票,人们排成一排,第一个人进入队尾最先到达队头后买票进入影院,后面排队的人按照排队的次序买到票后进入影院. 所以 队列是一种先进先出的数据结构(FIFO). 编程实现对循环链队列的入队和出队操作. ⑴根据输入的队列长度n和各元素值建立一个带头结点的循环链表表示的队列(循环链队列),并且只设一个尾指针来指向尾结点,然后输出

  • Java编程泛型限定代码分享

    泛型 一般 出现在集合中,迭代器中 也会出现! 泛型 是为了 提高代码的 安全性. 泛型 确保数据类型的唯一性. 在我们常用的容器中, 越是单一越好处理啊! 泛型的限定: ? 是通配符 指代 任意类型 泛型的限定上限: <? extends E> 接受 E 或者 E 的子类型. 泛型的限定下限: <?  super   E>  接收  E 或者 E 的父类. 泛型的限定上限 (定义父类 填装子类 类型!) 下面我们看看具体代码示例 package newFeatures8; imp

  • Java编程复用类代码详解

    本文研究的主要是Java编程中的复用类,那么到底复用类是什么东西,又有什么用法,下面具体介绍. 看了老罗罗升阳的专访,情不自禁地佩服,很年轻,我之前以为和罗永浩一个级别的年龄,也是见过的不是初高中编程的一位大牛之一,专访之后,发现老罗也是一步一个脚印的人.别说什么难做,做不了,你根本就没去尝试,也没有去坚持. If you can't fly then run,if you can't run then walk, if you can't walk then crawl,but whateve

  • Java编程Nashorn实例代码

    本文研究的主要是Java编程Nashorn的相关内容,具体如下. Nashorn是什么 Nashorn,发音"nass-horn",是德国二战时一个坦克的命名,同时也是java8新一代的javascript引擎--替代老旧,缓慢的Rhino,符合 ECMAScript-262 5.1 版语言规范.你可能想javascript是运行在web浏览器,提供对html各种dom操作,但是Nashorn不支持浏览器DOM的对象.这个需要注意的一个点. 之前学习Java8的时候恰好写了个简单的例子

  • Java用20行代码实现抖音小视频批量转换为gif动态图

    本文主要介绍了Java用20行代码实现抖音小视频批量转换为gif动态图,分享给大家,具体如下: 效果图 本功能实现需要用到第三方jar包 jave,JAVE 是java调用FFmpeg的封装工具. spring boot项目pom文件中添加以下依赖 <!-- https://mvnrepository.com/artifact/ws.schild/jave-core --> <dependency> <groupId>ws.schild</groupId>

  • Java编程接口调用的作用及代码分享

    很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接口到底是有什么作用,为什么要定义接口. 好像定义接口是提前做了个多余的工作.下面我给大家总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力. 2.简单.规范性:如果一个项目比较庞大,那么就需要一个能理清所有业务的架构师来定义一些主要的接口,这些接口不仅告诉开发人员你需要实现那些

  • Java编程中的4种代码块详解

    在Java编程中,代码块就是指用"{}"括起来的代码.下面看一下这四种代码块. 1.普通代码块 就是指类中方法的方法体. public void xxx(){ //code } 2.构造块 下面用"{}"括起来的代码片段,构造块在创建对象时会被调用,每次创建对象时都会被调用,并且优先于类构造函数(包括有参和无参的)执行. 构造块中定义的变量是局部变量. public class Client { {//构造代码块 System.out.println("执

  • java实现队列数据结构代码详解

    什么是队列结构 一种线性结构,具有特殊的运算法则[只能在一端(队头)删除,在另一端(队尾)插入]. 分类: 顺序队列结构 链式队列结构 基本操作: 入队列 出队列 给出一些应用队列的场景 1):当作业被送到打印机的时候,就可以按到达的顺序排起来,因此每一份作业是队列的节点. 2):售票口的人买票的顺序的按照先来先买的顺序售票. 3):当所有的终端被占用,由于资源有限,来访请求需要放在一个队列中等候. 队列是先进先出的! 我们设置一个叫做LinkQueue<T>的泛型集合类,该类里面有 Node

随机推荐