如何使用php中的curl将访问密钥作为HTTP标头传递

时间:2012-09-20 12:36:30

标签: php api rest

如何在PHP中发送下面提到的CURL请求?我将在php中使用哪些函数?

$ curl -H 'X-Sifter-Token: 343b1b831066a40e308e0af92e0f06f0' \
-H 'Accept: application/json' \ 
'http://example.sifterapp.com/api/projects'

我试过这段代码..但是它无法正常工作.. 请做必要的

$curlString = "";

$curlString .= "-H \"X-Sifter-Token: 343b1b831066a40e308e0af92e0f06f0\" \";

$curlString .= "-H \"Accept: application/json\" \";

$url="http://example.sifterapp.com/api/projects";


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $curlString);
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
var_dump($data);
curl_close($ch);
}

1 个答案:

答案 0 :(得分:8)

您没有正确使用CURLOPT_HTTPHEADER。从手册:

http://php.net/manual/en/function.curl-setopt.php

  

CURLOPT_HTTPHEADER要设置的HTTP标头字段的数组,   格式array('Content-type: text/plain', 'Content-length: 100')

所以你需要:

  curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-Sifter-Token: 343b1b831066a40e308e0af92e0f06f0',
        'Accept: application/json',
  ));