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))
}
相关推荐
辞旧 lekkk4 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
2zcode5 小时前
运动模糊图像复原的MATLAB仿真与优化
开发语言·matlab
袁雅倩19975 小时前
当吸尘器、筋膜枪都用上Type-C,供电方案该怎么选?浅谈PD取电芯片ECP5702的应用
c语言·开发语言·支持向量机·动态规划·推荐算法·最小二乘法·图搜索算法
Aaswk6 小时前
Java Lambda 表达式与流处理
java·开发语言·python
万邦科技Lafite6 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Cyber4K7 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
Le_ee8 小时前
ctfweb:php/php短标签/.haccess+图片马/XXE
开发语言·前端·php
yong99908 小时前
MATLAB读取高光谱图像
开发语言·matlab
2zcode8 小时前
基于MATLAB的肝病风险评估与分期分析系统设计与实现
开发语言·matlab
小小de风呀9 小时前
de风——【从零开始学C++】(五):内存管理
开发语言·c++