當您面臨需藉助Proxy 伺服器發送請求的情境時,正確配置代理設定顯得尤為重要。本文為您詳細介紹代理配置方式,確保您的請求能夠順利通過Proxy 伺服器進行傳輸。
代理配置方式
說明
代理配置優先順序:Client配置->環境變數配置,優先順序依次降低。
通過Client配置代理。
import ( "fmt" "os" "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" ecs "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs" ) func main() { // 配置運行時參數 config := sdk.NewConfig() // 使用RAM使用者AccessKeyID和AccessKeySecret credential := credentials.NewAccessKeyCredential(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) client, err := ecs.NewClientWithOptions("cn-hangzhou", config, credential) if err != nil { panic(err) } // 通過client配置代理 client.SetHttpsProxy("http://user:password@127.0.0.1:8989") // 設定 Https 代理. client.SetHttpProxy("http://127.0.0.1:8080") // 設定 Http 代理 client.SetNoProxy("127.0.0.1,localhost") // 設定代理白名單 // 建立請求 request := ecs.CreateDescribeRegionsRequest() request.Scheme = "https" // 請求參數 request.InstanceChargeType = "PrePaid" // 執行個體的計費方式 request.ResourceType = "instance" // 資源類型 // 發起請求並擷取傳回值 response, err := client.DescribeRegions(request) if err != nil { fmt.Print(err.Error()) } fmt.Printf("response is %#v\n", response) }通過以下環境變數配置代理。
HTTP_PROXY或者http_proxy。變數值格式:http_proxy為http://127.0.0.1:8080
HTTPS_PROXY或者https_proxy。變數值格式:https_proxy為http://<user>:<password>@127.0.0.1:8989
NO_PROXY或者no_proxy。變數值格式:127.0.0.1,localhost。