go-cqhttp 机器人使用教程

时间:2024-04-27 07:08:14

API | go-cqhttp 帮助中心

参考 | go-cqhttp 帮助中心

机器人下载

发送消息

http://127.0.0.1:5700/send_msg?message_type=private&user_id=911412667&message=你好呀

检查端口是否打开

netstat -ano | findstr :5701

发送的请求

软件的dopost的解析

  @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置编码格式
        System.out.println("你好呀我获取了数据");
        request.setCharacterEncoding("UTF-8");
//        response.setContentType("text/json; charset=utf-8"); //设置编码格式和数据类型
        response.setHeader("Content-Type", "application/json;charset=UTF-8");


        // 获取请求体中的数据
        BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream(),StandardCharsets.UTF_8)); //第一种方式
//        String requestBody = IOUtils.toString(request.getInputStream(), String.valueOf(StandardCharsets.UTF_8));//第二种方式
//        System.out.println("错误乱码检查:"+requestBody);


        String jsonStr = "";
        String line = null;
        while ((line = reader.readLine()) != null) {
            jsonStr += line;
        }
        System.out.println(jsonStr);

//        // 解析JSON格式的数据
//        Gson gson = new Gson();
//        Message message = gson.fromJson(jsonStr, Message.class);
//
//        // 输出解析结果
//        System.out.println(message.getMessage());


    }

需要的jar包

commons的

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>

json

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

通过WebSocket通信

package WebSocket.Server;

import java.net.URI;
import javax.websocket.ClientEndpoint;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import org.glassfish.tyrus.client.ClientManager;

@ClientEndpoint
public class WebsocketClient {
    public static void main(String[] args) throws Exception {
        String serverEndpoint = "ws://127.0.0.1:8081"; // 这里设置 Websocket 服务器的地址

        ClientManager client = ClientManager.createClient();
        WebsocketClient socket = new WebsocketClient();
        client.connectToServer(socket, new URI(serverEndpoint));

        // 等待接收服务器发来的消息
        while (true) {
            Thread.sleep(1000);
        }
    }

    @OnMessage
    public void onMessage(String message) {
        System.out.println("Received message from server: " + message);
    }

    @OnError
    public void onError(Throwable t) {
        t.printStackTrace(System.err);
    }
}

所有的jar包

<dependencies>
    <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>3.0.15.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.76</version>
    </dependency>

    <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-booter</artifactId>
        <version>2.22.2</version>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.3</version>
    </dependency>

    <dependency>
        <groupId>javax.websocket</groupId>
        <artifactId>javax.websocket-client-api</artifactId>
        <version>1.1</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish.tyrus.bundles</groupId>
        <artifactId>tyrus-standalone-client</artifactId>
        <version>1.17</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.36</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>

</dependencies>