全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
阿里云SDK开发指南

常见错误

更新时间:2018-02-24 18:17:03

SDK.CanNotResolveEndpoint

Can not resolve endpoint, please check the user guide

原因

SDK无法自动获取调用的产品在指定地域的endpoint。

解决方法

验证您提供的RegionId是否有误,并参考ECS在各地域的endpoint列表提供产品的endpoint。

  1. request.Domain = "<endpoint>"

SDK.JsonUnmarshalError

Failed to unmarshal response, but you can get the data via response.GetHttpStatusCode() and response.GetHttpContentString()

原因

SDK反序列化应答失败,大多情况下是由于SDK实际收到的应答结构与ApiMeta不符,例如字段不匹配,格式不正确等原因导致的。

解决方法

在SDK反序列化失败时,您可以忽略,通过提取response类中的原始HTTP应答,依然可以获取应答中的信息。

说明: 阿里云Go SDK依赖了jmespath,因此当应答内容为JSON时,您可以直接使用jmespath来解析应答。

  1. response, err := client.CreateInstance(request)
  2. if err != nil {
  3. // 异常处理
  4. if clientErr, isClientErr := err.(*errors.ClientError); isClientErr {
  5. if clientErr.ErrorCode() == errors.JsonUnmarshalErrorCode {
  6. // 您可以直接通过我们的封装方法来分别获取原始应答中的数据
  7. // 应答中的http状态码,类型:int
  8. statusCode := response.GetHttpStatus()
  9. // 应答中的http头,类型:map[string][]string
  10. responseHeader := response.GetHttpHeaders()
  11. // 应答中的body内容,类型:[]byte
  12. responseBytes := response.GetHttpContentBytes()
  13. // 应答中的body内容,类型:string, 等价于`string(response.GetHttpContentBytes())`
  14. responseContent := response.GetHttpContentString()
  15. // 您也可以直接获取原始应答,类型:net/http.Response
  16. httpResponse := response.GetOriginHttpResponse()
  17. }
  18. }
  19. }

SDK.TimeoutError

The request timed out 4 times(3 for retry), perhaps we should have the threshold raised a little?

原因

请求超时,并且重试全部失败。

解决方法

  • 如果存在跨region调用或其他低质量网络场景,建议考虑适当延长超时时间或最大重试次数。

  • 如果频繁出现这个问题,且排除低质量网络场景的情况下,建议您提交工单进行处理。

SDK.AsyncFunctionNotEnabled

Async function is not enabled in client, please invoke ‘client.EnableAsync()’ function

原因

在未开启异步请求开关的情况下,调用了异步接口。

解决方法

开启异步功能即可,相关使用方法请参考异步调用

SDK.ServerError:InvalidProtocol.NeedSsl

Your request is denied as lack of ssl protect.Recommend:https://error-center.aliyun.com/status/search?Keyword=InvalidProtocol.NeedSsl&source=PopGw

原因

API只接受HTTPS请求,不接受HTTP请求。

解决方法

在发送请求前,添加以下代码:

  1. request.Scheme = requests.HTTPS

其他问题

请您将遇到的问题通过钉钉群: 11771185Github issue 等方式反馈给我们,SDK研发团队会第一时间响应您的反馈。

本文导读目录