我的代码使用
file_get_contents()
来向API端点发起GET请求。看起来它在使用HTTP/1.0
,我的系统管理员告诉我需要使用HTTP/1.1
。我怎样才能发起一个HTTP/1.1
的请求?我需要使用curl吗?还是有更好/更容易的方法?
更新
考虑到我使用的是PHP 5.1.6,我决定使用cURL。我最终通过以下方式强制使用HTTP/1.1:
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
如果我使用的是5.3或更高版本,我会尝试做这样的事情:
$ctx = stream_context_create(array(
'http' => array('timeout' => 5, 'protocol_version' => 1.1)
));
$res = file_get_contents($url, 0, $ctx);
echo $res;
http://us.php.net/manual/en/context.http.php
注意:PHP版本在5.3.0之前不支持分块传输解码。如果将此值设置为1.1,则需要确保与HTTP/1.1兼容。
另外我发现一个可能提供HTTP/1.1的选项是使用HTTP扩展。