client.Do错误获取状态代码

时间:2017-04-13 21:06:36

标签: go

当我调用client.Do方法时,如何通知429响应代码(也就是太多请求)等错误。我应该期望使用状态代码429获取响应对象,还是仅仅显示“请求太多”消息时会出现错误?

我看到了后者,我需要的是能够获取所有错误的状态代码(server / dial / tcp / dns / etc。)和成功,只有在某些情况下我才能得到实际的代码以防万一错误。无论如何都要获取所有响应代码而不管错误类型 - 错误消息似乎反映了细节,但仍然希望尽可能获得代码。

1 个答案:

答案 0 :(得分:2)

http documentation非常清楚地涵盖了这一点。

特别感兴趣的是documentation for Do

  

如果由客户端策略(例如CheckRedirect)或无法说出HTTP(例如网络连接问题)引起错误,则会返回错误。 非2xx状态代码不会导致错误。

(强调补充)

Do返回的Response对象的文档:

type Response struct {
    Status     string // e.g. "200 OK"
    StatusCode int    // e.g. 200