我正在尝试通过curl发送一个包含授权密钥和api密钥的标头的休息请求。
因此我构建了以下curl调用:
$api_key = 'abc';
$token = 'xyz';
$authorization = 'Authorization: Bearer ' . $token;
$api = 'Api_key: ' . $api_key;
curl_setopt($curl, CURLOPT_HTTPHEADER, array($authorization, $api));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLINFO_HEADER_OUT, true); // Detail information for debugging
curl_setopt($curl,CURLOPT_VERBOSE,true);
$curl_response = curl_exec($curl);
调试服务器端的标头显示标题集合:
expect (array)
accept (array)
host (array)
authorization (array)
仔细查看授权数组显示只有一个项目。 这是来自客户端的授权密钥的值。 第二个值,标头/授权数组中缺少api_key。
客户端的Request_header显示,Api_key可用:
Host: localhost
Authorization: Basic RG9yaXMgS3JhenM6S3JhdXMxMDAw
Accept: */*
Api_key: abc
Content-Length: 458
Expect: 100-continue
Content-Type: multipart/form-data; boundary=------------------------224938f738738f42
为什么服务器无法接收构建在阵列上的完整http头身份验证信息。 开发环境是apache,php 7,yii,phpstorm。
答案 0 :(得分:0)
我已经将API密钥作为' x-api-key'解决了问题。在HTTP标头中。
这看起来像下面的代码:
CodingKeys