(request *retryablehttp.Request, source string)
| 108 | } |
| 109 | |
| 110 | func (s *Session) Do(request *retryablehttp.Request, source string) (*http.Response, error) { |
| 111 | err := s.RateLimits.Take(source) |
| 112 | if err != nil { |
| 113 | return nil, err |
| 114 | } |
| 115 | // close request connection (does not reuse connections) |
| 116 | request.Close = true |
| 117 | resp, err := s.Client.Do(request) |
| 118 | if err != nil { |
| 119 | return nil, err |
| 120 | } |
| 121 | if resp.StatusCode != http.StatusOK { |
| 122 | requestURL, _ := url.QueryUnescape(request.String()) |
| 123 | return resp, fmt.Errorf("unexpected status code %d received from %s", resp.StatusCode, requestURL) |
| 124 | } |
| 125 | return resp, nil |
| 126 | } |
no outgoing calls