네트워크 통신(예: http 요청)에 golang을 사용할 때 외부 네트워크 리소스에 액세스하기 위해 프록시를 설정해야 하는 경우가 있습니다. 이 기사에서는 golang 프록시를 설정하는 방법을 소개합니다.
먼저 환경 변수 HTTP_PROXY 및 HTTPS_PROXY를 설정해야 합니다. 이 두 변수의 값은 프록시 서버의 주소와 포트 번호입니다. 예:
Linux/MacOS 시스템:
export HTTP_PROXY=http://proxy.server.address:port export HTTPS_PROXY=https://proxy.server.address:port
Windows 시스템:
set HTTP_PROXY=http://proxy.server.address:port set HTTPS_PROXY=https://proxy.server.address:port
프록시를 일시적으로만 설정해야 하는 경우 http.ProxyFromEnvironment를 사용하여 프로그램에서 프록시 정보를 얻을 수 있습니다.
import ( "net/http" ) func main() { // 从环境变量中获取代理信息 proxy := http.ProxyFromEnvironment // 创建HTTP客户端 client := &http.Client{ Transport: &http.Transport{ Proxy: proxy, }, } // 发送GET请求 resp, err := client.Get("https://www.google.com") if err != nil { // 处理错误 } // 关闭响应体 defer resp.Body.Close() // 读取响应内容 // ... }
특정 프록시를 설정해야 하는 경우 , net/http/httputil 패키지의 NewSingleHostReverseProxy 함수를 사용하여 프록시를 만들 수 있습니다.
import ( "net/http" "net/http/httputil" "net/url" ) func main() { // 创建代理服务器的URL proxyUrl, _ := url.Parse("http://proxy.server.address:port") // 创建ReverseProxy reverseProxy := httputil.NewSingleHostReverseProxy(proxyUrl) // 创建HTTP服务器 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // 设置代理信息 r.URL.Host = "www.google.com" r.URL.Scheme = "https" // 将请求转发给代理服务器 reverseProxy.ServeHTTP(w, r) }) // 启动HTTP服务器 http.ListenAndServe(":8080", nil) }
위는 golang 프록시를 설정하는 방법입니다. 특정 필요에 따라 다른 방법을 선택할 수 있습니다. 실제 적용에서는 네트워크 통신의 보안과 안정성을 보장하기 위해 프록시 서버의 보안과 신뢰성에 주의를 기울일 필요가 있습니다.
위 내용은 golang 세트 프록시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!