无法解码嵌套的json api php

时间:2018-03-22 14:16:34

标签: php json api nested

我正在使用这些代码来获取koinex api数据。从此API网址 - https://koinex.in/api/ticker

<?php

$getCurrency = "inr";
$displayArrayOutput = true;

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://koinex.in/api/ticker",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
    if($displayArrayOutput){
        $response = json_decode($response, true);
        print_r($response);

    }
    else{
        header("Content-type:application/json");
    }
}


?>

我也尝试过file_get_contents,但同样的问题。我在另外2个api中面对这个问题。注意:一旦我获得数据并正确使用它,但今天这不再有效。

1 个答案:

答案 0 :(得分:1)

我尝试了您的代码,显然您尝试使用CURL访问的网站使用了安全性:

  

为什么我被封锁了?

     

本网站使用安全服务来保护自己免受在线攻击。您刚刚执行的操作触发了安全解决方案。有几个操作可以触发此块,包括提交某个单词或短语,SQL命令或格式错误的数据。

     

我该怎么做才能解决这个问题?

     

您可以向网站所有者发送电子邮件,告知他们您已被屏蔽。请提供此页面出现时您正在执行的操作以及本页底部的Cloudflare Ray ID。

您尝试联系的网站似乎要求提供用户代理。这段代码适合我:

<?php

$getCurrency = "inr";
$displayArrayOutput = true;

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'https://koinex.in/api/ticker',
    CURLOPT_USERAGENT => 'Something here'
));
// Send the request & save response to $resp
$response = curl_exec($curl);
// Close request to clear up some resources
$err = curl_error($curl);
curl_close($curl);

if ($err) {
} else {
    if($displayArrayOutput){
        $response = json_decode($response, true);
        print_r($response);

    }
    else{
        header("Content-type:application/json");
        echo 'touine';
    }
}


?>
祝你好运