file_get_contents默认使用哪个HTTP版本?

时间:2014-02-11 13:36:39

标签: php http file-get-contents

最近,我们的一家服务提供商将此更新发送到他们的服务:

使用HTTP 1.0协议:
API调用将返回HTTP/1.0 400 Bad Request ...应将其代码更新为HTTP 1.1并在API请求中包含Host标头。

PHP的file_get_contents()默认执行所有操作吗?

3 个答案:

答案 0 :(得分:2)

您可以将stream_context传递给file_get_contents,如下面的代码所示:

<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>

您可以在PHP手册中找到更多信息: http://us.php.net/file_get_contents

希望它有所帮助。

答案 1 :(得分:0)

根据http://de1.php.net/manual/de/context.http.php,默认上下文protocol_version1.0。你应该通过

设置它
<?php
$opts = array(
  'http'=>array(
    'method'=>"GET"
  )
);

$context = stream_context_create($opts, 
                    array ('protocol_version'=> '1.1')
);

$file = file_get_contents('http://www.example.com/', false, $context);
?>

(见http://de1.php.net/stream_context_create

答案 2 :(得分:0)

使用protocol_version参数的http元素中的context选项file_get_contents。它默认为版本1.0。有关详细信息,请参阅HTTP Context Options