使用 go 包时如何检查响应 headers

How to check response headers when using go package

当我达到速率限制时,我得到一个 error 实现,告诉我检查响应 header 以获取更多详细信息。

当我检查包裹时,我看到错误定义如下:

type APIError struct {
    Code            int                      `json:"code,omitempty"`
    Detail          string                   `json:"detail,omitempty"`
    Duration        Duration                 `json:"duration,omitempty"`
    Exception       string                   `json:"exception,omitempty"`
    ExceptionFields map[string][]interface{} `json:"exception_fields,omitempty"`
    StatusCode      int                      `json:"status_code,omitempty"`
}

我如何能够从中访问请求 header 信息?会在ExceptionFields内归还吗?我想按照建议添加指数退避系统,但希望能够使用响应 headers.

应用更智能的退避

我刚刚看到 stream-go2 的最新版本有一个 Rate 字段,我可以用来检查它。

type APIError struct {
    Code            int                      `json:"code,omitempty"`
    Detail          string                   `json:"detail,omitempty"`
    Duration        Duration                 `json:"duration,omitempty"`
    Exception       string                   `json:"exception,omitempty"`
    ExceptionFields map[string][]interface{} `json:"exception_fields,omitempty"`
    StatusCode      int                      `json:"status_code,omitempty"`
    Rate            *Rate                    `json:"-"`
}

我会升级我们的依赖