golang 开启HTTP代理认证

内部网路不能直接访问外网接口,可以通过代理发送HTTP请求。

HTTP代理服务需要进行认证。

go 复制代码
package cmd

import (
	"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 err
		return
	}

	// 创建 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))
}
相关推荐
云知谷1 分钟前
【HTML】网络数据是如何渲染成HTML网页页面显示的
开发语言·网络·计算机网络·html
小毛驴85028 分钟前
HTTP方法GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE,RESTful API设计的核心详解
http·github·restful
lly2024061 小时前
SQL ROUND() 函数详解
开发语言
大宝剑1701 小时前
python环境安装
开发语言·python
lly2024061 小时前
CSS3 多媒体查询
开发语言
天***88962 小时前
js封装一个双精度算法实现
开发语言·前端·javascript
.小小陈.2 小时前
数据结构2:单链表
c语言·开发语言·数据结构·笔记·学习方法
Camel卡蒙2 小时前
数据结构——二叉搜索树Binary Search Tree(介绍、Java实现增删查改、中序遍历等)
java·开发语言·数据结构
Algebraaaaa2 小时前
什么是前端、后端与全栈开发,Qt属于什么?
开发语言·前端·qt