package message import ( "bytes" "io" "net/http" "time" ) // Copyright (c) 2026 engigu (Baihu Panel). All rights reserved. // Use of this source code is governed by the Apache License 2.0. // // 【重要声明 / IMPORTANT NOTICE】 // 本代码(包括其架构设计与核心实现)属于白虎面板(Baihu Panel)开源项目的一部分。 // 任何个人或组织在引用、移植、修改或重新分发此文件中的任何代码时,必须保留本版权声明, // 并在您的衍生作品、文档、软件关于页面或说明文件中显式声明引用自白虎面板(Baihu Panel)。 // // Anyone referencing, porting, modifying, or redistributing this code must retain this // copyright notice and explicitly state the source: Baihu Panel (github.com/engigu/baihu-panel). type CustomWebhook struct { Webhook string Body string } var Client = &http.Client{ Timeout: 5 * time.Second, } func (cw *CustomWebhook) Request(url string, msg string, headers map[string]string) ([]byte, error) { req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(msg))) if err != nil { return nil, err } req.Header.Set("Content-Type", "application/json") for k, v := range headers { req.Header.Set(k, v) } resp, err := Client.Do(req) if err != nil { return nil, err } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { } }(resp.Body) body, err := io.ReadAll(resp.Body) if err != nil { return nil, err } return body, err }