function __construct($url=null, $method=self::METHOD_GET, $config=array())
{
- $this->config['connect_timeout'] = common_config('http', 'connect_timeout') ?: $this->config['connect_timeout'];
+ if (is_int(common_config('http', 'timeout'))) {
+ // Reasonably you shouldn't set http/timeout to 0 because of
+ // malicious remote servers that can cause infinitely long
+ // responses... But the default in HTTP_Request2 is 0 for
+ // some reason and should probably be considered a valid value.
+ $this->config['timeout'] = common_config('http', 'timeout');
+ } else {
+ common_log(LOG_ERR, 'config option http/timeout is not an integer value: '._ve(common_config('http', 'timeout')));
+ }
+ if (!empty(common_config('http', 'connect_timeout'))) {
+ $this->config['connect_timeout'] = common_config('http', 'connect_timeout');
+ }
$this->config['max_redirs'] = 10;
$this->config['follow_redirects'] = true;
return $data;
}
+ /**
+ * If you want an Accept header, put it in $headers
+ */
+ public static function quickHead($url, array $params=array(), array $headers=array())
+ {
+ if (!empty($params)) {
+ $params = http_build_query($params, null, '&');
+ if (strpos($url, '?') === false) {
+ $url .= '?' . $params;
+ } else {
+ $url .= '&' . $params;
+ }
+ }
+
+ $client = new HTTPClient();
+ $response = $client->head($url, $headers);
+ if (!$response->isOk()) {
+ // TRANS: Exception. %s is the URL we tried to GET.
+ throw new Exception(sprintf(_m('Could not GET URL %s.'), $url), $response->getStatus());
+ }
+ return $response->getHeader();
+ }
+
/**
* Convenience function to run a GET request.
*