Home  >  Article  >  Backend Development  >  golang set proxy

golang set proxy

WBOY
WBOYOriginal
2023-05-16 12:04:071821browse

When using golang for network communication (such as http requests), sometimes you need to set up a proxy to access external network resources. This article will introduce how to set up golang proxy.

  1. Environment settings

First you need to set the environment variables HTTP_PROXY and HTTPS_PROXY. The values ​​of these two variables are the address and port number of the proxy server, for example:

Linux/MacOS system:

export HTTP_PROXY=http://proxy.server.address:port
export HTTPS_PROXY=https://proxy.server.address:port

Windows system:

set HTTP_PROXY=http://proxy.server.address:port
set HTTPS_PROXY=https://proxy.server.address:port
  1. Program settings

If you only need to set the proxy temporarily, you can use it in the program http.ProxyFromEnvironment gets proxy information:

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()

    // 读取响应内容
    // ...
}

If you need to set a specific proxy, you can use the NewSingleHostReverseProxy function in the net/http/httputil package to create a proxy:

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)
}

The above is how to set up the golang proxy , you can choose different methods according to specific needs. In practical applications, it is necessary to pay attention to the security and reliability of the proxy server to ensure the security and stability of network communication.

The above is the detailed content of golang set proxy. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn