超时配置
本节主要介绍升级版 SDK 的超时机制。
升级版 SDK 将 Request 中的业务参数和这种运行时参数分开设置避免用户混淆,所以超时的设置升级版 SDK 的超时机制为 RuntimeOption -> Client 设置 -> 默认,优先级依次降低;默认连接超时为5秒,读超时为10秒:
func main() {
config := &openapi.Config{
// 您的AccessKey ID
AccessKeyId: tea.String("<AccessId>"),
// 您的AccessKey Secret
AccessKeySecret: tea.String("<AccessSecret>"),
// 访问的 Region
RegionId: tea.String("<RegionId>"),
// 超时参数设置,单位 ms(毫秒)
ConnectTimeout: tea.Int(10000),
ReadTimeout: tea.Int(10000),
}
client, _err := ecs20140526.NewClient(config)
if _err != nil {
panic(_err)
}
describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{}
// 创建RuntimeObject实例并设置运行参数。
runtime := &util.RuntimeOptions{}
// 超时参数设置,单位 ms(毫秒)
runtime.ConnectTimeout = tea.Int(10000)
runtime.ReadTimeout = tea.Int(10000)
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))
}