无法通过API

问题描述:

我使用的地方我一直在考虑有关该API以下细节外部API发送JSON数据无法通过API

API KEY (Mandatory Header) :- apikey : "xxxxx" 
Stage Server Base Url :- https://example.com 
To add Details API :- POST(/student/{student_id}) 

我打算做的是:

我将通过codeigniter形式从用户收集数据,然后将数据转发到上面的api,并获得来自 api的响应,并因此如果其成功则执行更远的 动作或者需要显示错误消息

但是为了测试而我使用的是静态数组,并试图将其发送到API。

实际上正在发生的事情是什么,我得到一个空白的结果,因此不知道它是否工作。

以下是我的代码

<?php 
$apiKey = 'xxxx'; 
$url = 'https://www.example.com'; 
$data = array("name"=> "ABC","location"=> "loc","class"=> 'tenth',"area"=> "area"); 

$ch = curl_init($url); 
$payload = json_encode($data); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); 
$headers= curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','Authorization: ' . $apiKey)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($ch); 
curl_close($ch); 
echo "<pre>$result</pre>"; 

?> 

PS:我是新来的API和卷曲所以与解决方案一起做一点解释,将不胜感激

+0

什么是响应状态码?你确定你打算通过'Authorization'头部发送API密钥吗?通常这个特殊的头文件包含一个授权方案,比如'Basic'或'Bearer' – Phil

+1

,如果你是api的新用户,请使用GuzzleHttp。这个库将解决你的大部分问题。 http://docs.guzzlephp.org/ –

+0

@Phil我没有得到任何回应,我无法弄清楚我错在哪里 – user3732711

你应该像下面语句中使用

curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data)); 
+1

OP正在发送JSON,而不是'应用程序/ x-WWW的形式urlencoded' – Phil

$ch = curl_init('http://www.example.com');                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json',                     
    'Accept: application/json',                     
    'Authorization:Basic '.$apikey, 
    )                  
);                             
$result = json_decode(curl_exec($ch)); 

尝试添加其授权头是否Basic或承载。希望对你有效。

+0

仍然得到空白页 – user3732711

+0

ü可以检查ü用apikey是否正确? –

+0

yeah d api密钥正确 – user3732711