【GNZ48-章泽婷应援会】基于Java的SNH48Group应援会机器人(二)获取数据

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

整个项目最核心的部分就是获取数据了,因为如果获取不到数据,那发送消息都是空谈。我一开始有考虑过使用别人写好的Python项目来获取数据,但找了很多,我发现都是通过分析那些数据接口来模拟发送https请求获取数据。由于不会写Python,无法去拓展别人的代码,于是就用Java构造了一个HTTPS请求类,因为Java的rt.jar这个基础类库中包含有java.net这个网络编程相关的类,通过自己封装一个方便调用的类,来对那些数据接口发送hppts请求,从而获取数据。

 

构造一个Https类

构造一个这个类的目的,就是为了提供简单的方法,将url、请求参数、请求头等信息放入一个https请求中,简便地发送请求,不用重复编写相关代码,即代码复用。

package com.gnz48.zzt.util;

import java.awt.Image;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;

import org.apache.catalina.webresources.war.Handler;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.gnz48.zzt.confing.MyX509TrustManager;
import com.gnz48.zzt.exception.RuleException;

/**
 * @ClassName: Https
 * @Description: Https操作的工具类
 * @author JuFF_白羽
 * @date 2018年6月12日 上午10:39:42
 */
public class Https {

	private static final Logger LOGGER = LoggerFactory.getLogger(Https.class);

	private String url;

	private Map<String, String> params;

	private String dataType;

	private String result;

	private Map<String, String> requestPropertys;

	private String payloadJson;

	public Https() {
	}

	public Https(String url, String dataType, Map<String, String> params, Map<String, String> requestPropertys,
			String payloadJson) {
		this.url = url;
		this.dataType = dataType;
		this.params = params;
		this.requestPropertys = requestPropertys;
		this.payloadJson = payloadJson;
	}

	/**
	 * @Title: getUrl
	 * @Description: 获取当前使用的URL
	 * @author JuFF_白羽
	 * @return String
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * @Title: setUrl
	 * @Description: 设置URL
	 * @author JuFF_白羽
	 * @param url
	 *            请求地址
	 * @return Https
	 */
	public Https setUrl(String url) {
		this.url = url;
		return this;
	}

	/**
	 * @Title: getParams
	 * @Description: 获取当前使用的参数
	 * @author JuFF_白羽
	 * @return Map<String,String>
	 */
	public Map<String, String> getParams() {
		return params;
	}

	/**
	 * @Title: setParams
	 * @Description: 设置参数
	 * @author JuFF_白羽
	 * @param params
	 *            参数键值对
	 * @return Https
	 */
	public Https setParams(Map<String, String> params) {
GNZ48-章泽婷应援会】基于JavaSNH48Group应援机器人(一)项目简介 项目也是在某些巧合下开始打算制作的,其中也用到了很多小技术,基本轮询服务完成后开始启用,经过不断调试(摸鱼时间写的小项目,所以比较慢),基本已经成型,后续可再增加其他功能。目前已有的三大主要功能主要是监控口袋48房间消息、监控微博消息和监控摩点集资消息,并把监控到的数据发送到指定QQ聊天框中。(对了,我挂的章泽婷应援会只是单纯因为我姑且算是她的一个饭吧) 话不多说,首先我想介绍一下这个“机器人... 阅读详情

相关推荐

GNZ48-章泽婷应援会】基于JavaSNH48Group应援机器人(三)发送消息

这一部分是我也看了好久,才决定用Java的Robot + User32来实现。Robot是java.awt下的一个类,该类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,因此可试用该类进行模拟鼠标键盘操作。User32是JNA下的一个类,该类提供对W32 USER32库的访问,也就是说可以试用该类来进行windows的一些操作,而这里我用来选择对话窗口。

JuFF_白羽的博客 1064

PICQ48:基于酷Q的可视化配置SNH48机器人 口袋房间 微博 摩点 桃叭 ... 监控(SNH48GNZ48、BEJ48、CKG48

PICQ48 基于酷Q的可视化SNH48机器人 / 口袋48房间 / 微博 / 摩点 / 桃叭 /... 监控 本项目基于zztyyh项目进行改造,重构数据监控模块逻辑,重写发送消息模块,但未改变表数据结构,前端页面也未做更改。 原项目git: 本项目的QQ交互部分使用基于酷Q的HTTP插件: 部署地址: 软件:酷Q Air / 酷Q Pro Windows环境下安装 数据库:MySQL 5.7.2x 编码utf8mb4(为了保存emoji表情) 项目主体:Spring Boot 2.2.0 + JDK 1.8 持久层框架:JPA(spring-boot-starter-data-jpa) + MyBatis(mybatis-spring-boot-starter 2.1.0) 模板引擎:Thymeleaf(spring-boot-starter-thymeleaf) 轮询框架:Q

Spring Cloud Alibaba从入门到精通!

前台 一. 课程介绍 1.1 课程导学 什么是SpringCloudAlibaba? 阿里巴巴结合自身微服务实践,开源的微服务全家桶 在Spring Cloud项目中孵化,很可能成为Spring Cloud第代标准的实现 在业界广泛使用,已有很多成功案例 Spring Cloud Alibaba真实应用场景 大型复杂的系统,例如大型电商系统 高并发系统,例如大型门户,秒杀系统 需求不明确,且变更很快的系统,例如初创公司业务系统 Spring Cloud Alibaba与Spring C

程序媛小琬的博客 4967

pocket48_for_gnz:监控gnz48官博,口袋48房间消息,直播,b站投稿更新等

pocket48 因webQQ协议限制较多且不稳定,本项目已废弃,请移步dev分支,基于coolq重构 基于制作 监控成员口袋48聚聚房间,微博和微打赏项目 目前可用的插件: pocket48_plugin(口袋48插件) weibo_plugin(微博监听插件) wds_plugin(微打赏监听插件) 口袋48插件1分钟监听一次,微博插件45秒监听一次,微打赏插件1分钟监听一次(可以自行调整) qqbot配置 具体使用请参照qqbot的主页 在~/.qqbot-tmp/v2.3.conf中配置机器人的qq消息, 在plugin中可以填写自己想要使用的插件 请填写接收维码的邮箱及邮箱授权码,百度即可搜到授权码生成方法 在run-pocket48.sh中最后一行'qqbot -u'后面的参数修改为配置的qq用户名 配置完成之后,运行run-pocket48.sh即可   口袋48和微博插件

JavaWeb】之入门知识

JavaWeb入门知识

qq_58233395的博客 385

Android 客户端起HttpServer NanoHttpd

最近接到客户那边需求,说需要实现一个java后端请求android客户端,android客户端作为微型Web服务端,听起来真的很刺激,后面去网上查找一些资料,了解NanoHttpd是怎么回事?NanoHTTPD是一个免费、轻量级的(只有一个Java文件) HTTP服务器,可以很好地嵌入到Java程序中。支持 GET, POST, PUT, HEAD 和 DELETE 请求,支持文件上传,占用内存很...

郑敏 29万+

SNH48周边商品抢购分析

其中,针对每种情况还设置了不同的颜色,这样方便知道是哪里出现了问题。为了测试,我们还编写了日志文件,可以在运行过程检测哪里出现了问题。此次针对的是SNH48网站的【周边】商品进行分析,抢购。针对response返回的结果进行分析。订阅文章后,可以私信我获取软件使用。编写一个post接口请求即可。

猫敷雪 1302

导入申请的证书时发生java.security.cert.CertificateException: java.io.EOFException异常

<br />原因:部分客户端邮件工具如Foxmail会在证书末尾添加一个空行,导致导入证书发生java.security.cert.CertificateException: java.io.EOFException异常,请直接从Web邮箱下载证书。

我的Java之路,关注Java技术的发展 1万+

备忘:javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: No trusted certificate found

发送GET请求出现异常!javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.h: No trusted certificate found 可能需要将签署者添加至本地信任库。可以使用管理控制台的端口选项中的“检索”来检索证书并解决问题。 如果您确定请求可信,请完成下列步骤: 1. 登录管理控制台。 2. 展开“安全性”并单

cnfixit的专栏 7043

Shiro学习笔记(四)加密和令牌匹配

常用加密方式如哈希、对称、非对称,而想要自定义加密方式,就得了解shiro是如何对令牌进行匹配的。 1.普通匹配 密码校验等相关操作,在shiro中是属于Realm的功能,自定的Realm继承org.apache.shiro.realm.AuthorizingRealm类,实现了org.apache.shiro.realm.AuthorizingRealm.doGetAuthori...

JuFF_白羽的博客 668

UIScrollView详解

UIScrollView 类负责所有基于 UIKit 的滚动操作。 一、创建   [java] view plaincopy CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ;   UIScrollView* scrollView = [ [UIScrollView alloc ] 

Juff的专栏 645

Python分析了《青春有你2》109位漂亮小姐姐,真香!

图片来源网络当下,最火的综艺,最具有话题性的综艺莫过于《青春有你2》了,里面不仅仅有爱打篮球的坤坤,而且还有109位漂亮的小姐姐,她们不仅为我们带来精彩纷呈的表演,还为我们带来了很多话题...

程序IT圈 374

两种不同TableView的使用(代码)

第一种,正常的使用方法 // //  TableViewViewController.m //  TableView // //  Created by ch_soft on 11-11-7. //  Copyright 2011年 __MyCompanyName__. All rights reserved. // #import "TableViewViewControll

Juff的专栏 756

java使用百度翻译接口实现前后端翻译功能

java 百度翻译工具类 分别有前端和后端的 例子及工具 使用百度翻译接口需要网上申请key,代码里面有URL。 package cn.secure.util; import java.io.BufferedReader; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; imp...

大道至简,悟在天成。 7776

微信公众号URL和Token配置验证

微信公众号验证URL和Token的配置,以及在项目中获取Token进入正题首先准备一些事情; 测试的公众号:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 获得appId 和appsecret 为配置微信服务端; 配置接口信息, 稍后讲解; 为了方便微信测试 :http://www.ngrok.cc/ 看下图文字叙述,没...

十指曼若 5846

将form表单封装成对象

通常,在提交字段较少的form中,我们可以在控制层直接用多字段参数去接收。但在字段较多,比如一个from表单中包含十几个甚至十几个字段时,控制层再用单个字段来一个一个接收的话,参数就会非常多,并且代码可读性也大大降低。因此将字段封装成对象,再将对象传回控制层,就大大简化了代码。具体方法如下: HMTL: 系统编码: 系统名称: 系统类型:

JuFF_白羽的博客 1万+

遍历文件目录的方法

public List&lt;String&gt; readFile(String filepath) throws IOException { List&lt;String&gt; pathList = new ArrayList&lt;String&gt;(); try { File file = new File(filepath); if (file.exists()) {//...

JuFF_白羽的博客 644

Shiro学习笔记(三)Spring Boot + Shiro

实际开发中必要加入缓存机制,这里使用redis作为缓存,主要使用的依赖包如下(redis): <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</ver...

JuFF_白羽的博客 311
上一篇: 【GNZ48-章泽婷应援会】基于Java的SNH48Group应援会机器人(一)项目简介
下一篇: 【GNZ48-章泽婷应援会】基于Java的SNH48Group应援会机器人(三)发送消息
JuFF_白羽
博客等级 码龄9年 15粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值