code: func GetRequest(url string, timeout time.Duration, conditions ...ResponseCondition) error {
  	resp, err := doTryGet(url, timeout, nil, conditions...)
  
  	if resp != nil && resp.Body != nil {
  		defer resp.Body.Close()
  	}
  
  	return err
  }
docs: // GetRequest is like Do, but runs a request against the given URL and applies
  // the condition on the response.
  // ResponseCondition may be nil, in which case only the request against the URL must
  // succeed.