【发布时间】:2016-12-19 01:20:01
【问题描述】:
你好,很棒的 Stackoverflow,我正在通过 PHP Curl 测试我的 API。 API 需要将 Accept 变量和 Authorization 设置为标头。
<?php
$header = array(
'Accept' => 'application/json',
'Authorization' => 'ab167you89');
?>
当我运行下面的代码时,它会显示下面的错误。似乎无法通过 API URL CURL 访问标题部分中的 ACCEPT 和 AUTHORIZATION 变量。有人可以帮我解决这个问题。谢谢
下面是它显示的错误
{"errors":[{"status":"415","code":"015","title":"unsupported media type","detail":"Header 'Accept' must be set and must be one of: 'application/vnd.api+json', 'application/json', 'text/csv', 'application/xml'"},{"status":"400","code":"032","title":"requires project name in HTTP header Authorization","detail":"Provide the parameter 'Authorization' in HTTP header like 'your_project_name:your_token'."}]}
下面是完整代码
<?php
// 0 means unlimited timeout
ini_set('max_execution_time', 0);
$header = array(
'Accept' => 'application/json',
'Authorization' => 'ab167you89'
);
$url='https://myapicurl.com/info=100';
$ch = curl_init();
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); //if you want headers set it to true otherwise set it to false
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
//curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata );
//curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string);
$result=curl_exec($ch);
curl_close($ch);
echo '<pre>' . print_r($result, true) . '</pre>';
var_dump(json_decode($result, true));
?>
【问题讨论】: