我正在使用这些代码来获取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中面对这个问题。注意:一旦我获得数据并正确使用它,但今天这不再有效。
答案 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';
}
}
?>
祝你好运