Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和cURL使用API_Php_Api_Curl - Fatal编程技术网

使用php和cURL使用API

使用php和cURL使用API,php,api,curl,Php,Api,Curl,嗨,我正在尝试使用一个API 我需要在标题中添加API密钥 API端点= 如果要测试,可以在此处创建帐户: 文件以荷兰语编写,可在此处找到: 这是我想到的,但没有通过身份验证 <?php $service_url = 'https://overheid.io/api/kvk'; $curl = curl_init($service_url); curl_setopt($curl, CURLOPT_HEADER => true); curl_setopt($curl, CURLOPT

嗨,我正在尝试使用一个API

我需要在标题中添加API密钥 API端点=

如果要测试,可以在此处创建帐户: 文件以荷兰语编写,可在此处找到:

这是我想到的,但没有通过身份验证

<?php 
$service_url = 'https://overheid.io/api/kvk';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HEADER => true);
curl_setopt($curl, CURLOPT_HTTPHEADER, "ovio-api-key:the_api_key");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
curl_close($curl);
print $curl_response;   
?>

编辑:我已经用解决方案替换了最初的代码部分,但仍然没有成功

谁能给我指出正确的方向吗


谢谢

您可以尝试使用
CURLOPT_USERPWD
选项传递身份验证标头。您似乎也有一些语法错误

<?php 
$service_url = 'https://overheid.io/api/kvk';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_USERPWD, "ovio-api-key:the_api_key");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
curl_close($curl);
print $curl_response;   
更新:

我在他们的网站上创建了一个帐户,并使用了以下内容:

<?php
$service_url = 'https://overheid.io/api/kvk';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("ovio-api-key: key"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
curl_close($curl);
print $curl_response;

您的代码在两行上有几个印刷错误,例如缺少结尾)。此api使用https。您是否将curl与ssl证书一起使用,因为默认情况下curl不信任这些错误,请使用
curl\u setopt($curl,CURLOPT\u ssl\u VERIFYPEER,false)
@Jessica,thnx,我已经添加了它们,我尝试了两者,但stll出现了相同的错误:HTTP/1.1 401未经授权的服务器:nginx/1.8.0内容类型:应用程序/json传输编码:分块连接:保持活动X-Powered-By:HHVM/3.7.3变化:接受编码集Cookie:xxx;expires=太阳,2015年7月26日16:40:53格林威治标准时间;最大年龄=7200岁;path=/Set Cookie:laravel_session=yyy;expires=太阳,2015年7月26日16:40:53格林威治标准时间;最大年龄=7200岁;路径=/;httponly缓存控制:无缓存日期:Sun,2015年7月26日14:40:53 GMT{“错误”:“请求中没有有效的API密钥。有关详细信息,请检查https:\/\/overheid.io\/documentie”}您尝试在
之后使用空格?很多例子都在后面加了空格。包括他们链接到的文档。@Jessica,Thanx对于这个建议,我在后面加了一个空格,但没有任何区别。请看我的更新,这个例子对我有用。我之前也犯了一个错误,使用变量
$ch
而不是
$curl
@Chris,我仍然不断地得到“请求中没有有效的API密钥。”错误。我在IE/FF和Chrome中试用过。我复制了整个示例,只替换了apikey,这可能是我服务器上的卷曲问题吗?你可以pm我你的API密钥吗?
<?php
$service_url = 'https://overheid.io/api/kvk';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("ovio-api-key: key"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
curl_close($curl);
print $curl_response;