package main import ( "fmt" "io" "net/http" "net/url" "strings" ) // 处理字节切片,返回结构体 func (O OriginContent) Dealwithbody(body []byte) OriginContent { alreadyDealwithbody := string(body) spiltdecodedvalue := strings.Split(alreadyDealwithbody, "&") value := make(map[int][]string) for k := range spiltdecodedvalue { value[k] = strings.Split(spiltdecodedvalue[k], "=") } urlDecode, err := url.QueryUnescape(value[1][1]) if err != nil { fmt.Printf("urldecode失败,错误为:%v", err) } var wow = NewOrignContent(value[0][1], urlDecode, value[2][1]) fmt.Println(wow) return wow } func verificationCodeHandler(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { http.Error(w, "方法不允许哦^ ^", http.StatusMethodNotAllowed) return } // 读取请求体数据 body, err := io.ReadAll(r.Body) if err != nil { http.Error(w, "读取请求体失败", http.StatusInternalServerError) return } // 把返回体通过方法赋值给全局对象 newObj = newObj.Dealwithbody(body) //fmt.Printf("%s%s%s\n", time.Now(), " ", content) // 如果请求内容包含 "验证码",则发送到企业微信机器人 if strings.Contains(newObj.content, "验证码") || strings.Contains(newObj.content, "华为") { sendToWechatBot(newObj) } // 返回响应 w.Write([]byte("请求企业微信~")) } func (O OriginContent) Send() { // 这里实现发送信息到企业微信机器人的逻辑 var message string if strings.Contains(newObj.content, "华为") { // 如果 content 中包含 "华为" message = fmt.Sprintf(`{"msgtype": "text", "text": {"content": "%s","mentioned_mobile_list":["18701488607"]}}`, newObj.content) } else { // 如果 content 中不包含 "华为" message = fmt.Sprintf(`{"msgtype": "text", "text": {"content": "%s"}}`, newObj.content) } // 发送 HTTP POST 请求到企业微信机器人的 Webhook resp, err := http.Post(webhookURLVerCode, "application/json", strings.NewReader(message)) if err != nil { fmt.Println("Error sending message to Wechat Bot:", err) return } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { fmt.Printf("关闭返回体失败,错误是:%v", err) } }(resp.Body) // 读取响应 respBody, err := io.ReadAll(resp.Body) if err != nil { fmt.Println("读取返回体失败~:", err) return } fmt.Println("发送webhook成功~", string(respBody)) }