多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# HTTP API组件 配置 # 代码配置 首先,你需要创建一个类。然后使此类实现一个接口: `com.forte.qqrobot.component.forhttpapi.HttpApp` 此接口有两个抽象方法: ```java void before(HttpConfiguration config); void after(CQCodeUtil cqCodeUtil, MsgSender msgSender); ``` 其中,`before`方法为开始连接到插件之前的配置方法,此方法提供了一个配置对象: `HttpConfiguration`,此对象提供了一些需要进行配置的选项。 > 以下方法已除去配置类的基本方法(例如设置IP) ```java /** 配置java服务器的请求路径,默认为'/coolq' */ public void setServerPath(String serverPath); /** 配置java服务器的监听端口,默认为15514 */ public void setJavaPort(int javaPort); /** 配置java服务器可接收的请求类型,默认为'post'类型 (且http api插件只支持post类型,此选选项不用动)*/ public void setMethod(String[] method); /** 配置酷Q端的端口地址,默认为8877 */ public void setServerPort(int serverPort); /** TCP连接最大并发数, 传 0 或负数表示使用默认值,默认为0 */ public void setBacklog(int backlog); ``` > **※注1:此组件会在启动的时候自动获取机器人QQ的登录信息,例如QQ号、昵称等。因此QQ号与昵称等信息无需在配置类中进行配置。** > **※注2:虽然上面的配置中均存在默认值,但是由于HTTP API插件的配置中部分配置并不存在任何默认值,所以酷Q插件方面的配置依旧需要费心进行一次配置。但是配置之后就不用再变了QwQ** 另一个方法为`after`方法,其代表了当连接成功后的回调方法。此方法提供了两个参数:`CQCodeUtil(CQCode工具类)`和`MsgSender(送信器)`,关于这两个参数的具体使用方式请参照组件的通用内容章节。 那么,到这里,两个抽象方法实现完毕了,接下来该干什么了呢?该进行连接了。在你所创建的这个类中,创建一个main方法,并书写以下代码: ```java HttpApplication application = new HttpApplication(); application.run(new 你创建的类()); ``` > 其中的这个'你创建的类'就是那个实现了`HttpApp`接口的类。这样,执行main方法,就可以了。 以下是一个最基础的、十分简化的启动类示例: ```java public class DemoRun implements HttpApp { public static void main(String[] args) { new HttpApplication().run(new DemoRun()); } @Override public void before(HttpConfiguration configuration) { //酷Q所在的服务器IP地址 configuration.setIp("127.0.0.1"); // java端服务器监听的端口,用于接收插件的消息 configuration.setJavaPort(15514); // java端服务器监听的请求路径,用于接收插件的消息 configuration.setServerPath("/coolq"); //酷Q HTTP API 插件配置中的「动态交互」标签页中配置的端口号。 //用于向插件提交消息 configuration.setServerPort(8877); } @Override public void after(CQCodeUtil cqCodeUtil, MsgSender sender) { //连接后 } } ``` <br> 根据上述的java端配置,则对应的HTTP API插件的配置中,第一个选项卡里的请求路径为:(假设java程序在IP:1.2.3.4这个IP地址中) `http://1.2.3.4:15514/simpleRobot` 可以看到,ip为java所在的ip地址,端口和请求路径都是我们在配置类中配置的属性。 然后,HTTP API插件配置第二个选项卡「动态交互」中,有一个端口号,根据上述的配置,将其配置为`8877`,即为`setServerPort`所配置的端口号。 <br> ### 配置对应图 <br> ![](https://i.vgy.me/Mmi3vV.png) <br>