Workaround intermittent bugs with HEAD requests by disabling keepalive in HTTPClient.

I think this is a bug in Youtube's web server (sending chunked encoding of an empty body with a HEAD response, leaving the connection out of sync when it doesn't attempt to read a body) but the HTTP_Request2 library may need to be adjusted to watch out for that.
This commit is contained in:
Brion Vibber 2010-03-10 15:08:40 -08:00
parent 294b290dd9
commit 5cd020bf29

View File

@ -120,6 +120,16 @@ class HTTPClient extends HTTP_Request2
{
$this->config['max_redirs'] = 10;
$this->config['follow_redirects'] = true;
// We've had some issues with keepalive breaking with
// HEAD requests, such as to youtube which seems to be
// emitting chunked encoding info for an empty body
// instead of not emitting anything. This may be a
// bug on YouTube's end, but the upstream libray
// ought to be investigated to see if we can handle
// it gracefully in that case as well.
$this->config['protocol_version'] = '1.0';
parent::__construct($url, $method, $config);
$this->setHeader('User-Agent', $this->userAgent());
}