内部网路不能直接访问外网接口,可以通过代理发送HTTP请求。
HTTP代理服务需要进行认证。
package cmdimport ("fmt""io/ioutil""log""net/http""net/url""strings"
)// 推送CBC07功能
func main() {log.Println("开启http代理服务...")proxyURL, err := url.Parse("http://username:password@proxyServerIp:port")if err != nil {fmt.Println("Failed to parse proxy URL:", err)// return errreturn}// 创建 HTTP 客户端并设置代理httpClient := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL),},}log.Println("开启请求推送...")urls := "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=123456"method := "POST"payload := strings.NewReader(` {"chatid": "CHATID","msgtype":"image","image":{"media_id": "media_id"},"safe":0} `)log.Println("开启请求服务...")// client := &http.Client{}req, err := http.NewRequest(method, urls, payload)if err != nil {fmt.Println(err)return}req.Header.Add("Content-Type", "application/json")log.Println("执行请求中...")res, err := httpClient.Do(req)if err != nil {fmt.Println(err)return}defer res.Body.Close()log.Println("读取响应:")body, err := ioutil.ReadAll(res.Body)if err != nil {fmt.Println(err)return}fmt.Println(string(body))
}