代理配置
本节主要介绍升级版 SDK 对于代理的配置。
升级版本 SDK 支持代理或者通过 Config 在初始化 Client 阶段设置请求的代理可以设置,升级版 SDK 还支持通过运行时参数配置当前请求的代理优先级:RuntimeOption -> Client > 环境变量:
package main
import (
"encoding/json"
"fmt"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v3/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
func main() {
config := &openapi.Config{
// 您的AccessKey ID
AccessKeyId: tea.String("<AccessId>"),
// 您的AccessKey Secret
AccessKeySecret: tea.String("<AccessSecret>"),
// 访问的 Region
RegionId: tea.String("<RegionId>"),
// 代理设置
HttpProxy: tea.String("http://127.0.0.1:9898"),
HttpsProxy: tea.String("http://user:password@127.0.0.1:8989"),
NoProxy: tea.String("127.0.0.1,localhost"),
}
client, _err := ecs20140526.NewClient(config)
if _err != nil {
panic(_err)
}
describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
// 创建RuntimeObject实例并设置运行参数。
runtime := &util.RuntimeOptions{}
// 代理设置
runtime.HttpProxy = tea.String("http://127.0.0.1:9898")
runtime.HttpsProxy = tea.String("http://user:password@127.0.0.1:8989")
runtime.NoProxy = tea.String("127.0.0.1,localhost")
resp, _err := client.DescribeRegionsWithOptions(describeRegionsRequest, runtime)
if _err != nil {
panic(_err)
}
// response 包含服务端响应的 body 和 headers
body, err := json.Marshal(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("body: %s\n", string(body))
}