为什么stream_context_create成功返回数据而不是我的Curl?

时间:2013-09-26 20:49:22

标签: php curl

当我第一次开始时,我认为Curl将是以json格式检索大量数据的绝佳方式。它没用。我尝试了一些Ajax请求,但这也不起作用。

现在,这是我的卷曲请求:

$ch = curl_init("url");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept' => 'application/json',
    'Auth' => 'code',
));

$data = curl_exec($ch);

curl_close($ch);

print_r($data);

... CURL请求RETURNS一个EMPTY STRING。没有错误......

$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept: application/json\r\n" . "Auth: code",
  )
);

$context = stream_context_create($opts);



$url = "";

$fp = fopen($url, 'r', false, $context);

$r = @stream_get_contents($fp);

fclose($fp);

print_r($r);

提供带有json数据的漂亮数组。为什么?字面意思不应该做同样的事情吗?

1 个答案:

答案 0 :(得分:1)

因为CURLOPT_HTTPHEADER不接受关联的数组。您需要添加完整的标题。

$ch = curl_init("url");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Auth: code',
));

$data = curl_exec($ch);

curl_close($ch);

print_r($data);