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))
}
相关推荐
终是蝶衣梦晓楼37 分钟前
HiC-Pro Manual
java·开发语言·算法
前端_yu小白1 小时前
Vue2实现docx,xlsx,pptx预览
开发语言·javascript·ecmascript
Pocker_Spades_A1 小时前
从 0 到 1 开发图书管理系统:飞算 JavaAI 让技术落地更简单
java·开发语言·java开发·飞算javaai炫技赛
郝学胜-神的一滴1 小时前
对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr: Effective Modern C++ 条款20
开发语言·c++·程序人生·系统架构
linux修理工2 小时前
使用 SecureCRT 连接华为 eNSP 模拟器的方法
服务器·开发语言·php
若水晴空初如梦2 小时前
QT聊天项目DAY17
开发语言·qt
Murphy_lx2 小时前
C++ stdset 与 stdmultiset 深度比较
开发语言·c++
LZQqqqqo2 小时前
C# 事件Event
开发语言·c#
样子20183 小时前
PHP 之使用HTMLPurifier过滤XSS
开发语言·前端·php·xss
枫叶梨花3 小时前
使用Go语言获取Windows系统信息:从CPU到电池的全维度监控
开发语言·windows·golang