Php 使用CURL的API命中

Php 使用CURL的API命中,php,curl,Php,Curl,我正在尝试使用CURL访问API 我可以从浏览器访问API。 但无法从相同的api(使用相同的api密钥)获取数据 使用curl 我得到了这个错误。 403开发人员超过Qps 请让我知道这可能是什么原因 早些时候它起作用了。在过去的两天里,我一直在面对这个问题 请检查以下代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://api.perfb.com/api/api.php?requestmethod=json&resp

我正在尝试使用CURL访问API 我可以从浏览器访问API。 但无法从相同的api(使用相同的api密钥)获取数据 使用curl

我得到了这个错误。 403开发人员超过Qps

请让我知道这可能是什么原因

早些时候它起作用了。在过去的两天里,我一直在面对这个问题

请检查以下代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.perfb.com/api/api.php?requestmethod=json&responsemethod=xml');

curl_setopt($ch, CURLOPT_TIMEOUT, 900);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $vJson);

$response = curl_exec($ch);
$info = curl_getinfo($ch);
echo '<pre>';
print_r($info);exit;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,'http://api.perfb.com/api/api.php?requestmethod=json&responsemethod=xml');
curl_setopt($ch,CURLOPT_TIMEOUT,900);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_FAILONERROR,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$vJson);
$response=curl\u exec($ch);
$info=curl\u getinfo($ch);
回声';
打印(信息);出口

该错误通常表示您访问服务器的频率太高(即开发者每秒超过允许的查询次数)。放慢代码的速度,增加一些延迟。在浏览器中,您是手动执行的,因此它可能比您的代码慢了一点。

该错误通常表示您访问服务器的频率太高(即开发人员每秒超过允许的查询次数)。放慢代码的速度,增加一些延迟。在浏览器中,您是手动操作的,所以它可能比您的代码慢很多。

Qps表示每秒查询数


例如,您是否在循环中重复使用curl来访问服务器?尝试在每次通话后添加暂停,看看是否有效。

Qps表示每秒查询次数


例如,您是否在循环中重复使用curl来访问服务器?尝试在每次呼叫后添加暂停,看看是否有效。

请显示相关代码、url、错误消息解释,以及任何可以帮助我们帮助您的内容。403开发者超过Qps意味着您每秒发出的查询数超过了最大值。你必须提出你的问题。请尝试在查询之间引入延迟。请显示相关代码、url、错误消息解释,以及任何可以帮助我们帮助您的内容。403 Developer Over Qps表示您每秒发出的查询数超过了最大值。你必须提出你的问题。尝试在两次查询之间引入延迟。目前我没有使用任何查询,只是尝试打印从API获得的响应,最终导致“403 deevloper over rate”错误。Thanksmy代码现在看起来像这样,它现在正在工作:$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$URL);curl_setopt($ch,CURLOPT_TIMEOUT,900);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);curl_setopt($ch,CURLOPT_FAILONERROR,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POST,true)$响应=curl_exec($ch)$info=curl\u getinfo($ch);回声“;打印(信息);我找不到关于什么是api.perfb.com的任何信息,我们告诉您最可能的问题是什么。如果您无法从中解决问题,我建议您询问服务提供商(api.perfb.com员工),因为他们是唯一能够向您提供错误原因准确信息的人。但是,“我没有使用任何查询”是错误的:您的
curl\u exec($ch)
正在执行一个查询。我现在没有使用任何查询,只是试图打印从API得到的响应,这最终导致“403 deevloper over rate”错误。Thanksmy代码现在看起来像这样,它现在正在工作:$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$URL);curl_setopt($ch,CURLOPT_TIMEOUT,900);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);curl_setopt($ch,CURLOPT_FAILONERROR,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);curl_setopt($ch,CURLOPT_POST,true)$响应=curl_exec($ch)$info=curl\u getinfo($ch);回声“;打印(信息);我找不到关于什么是api.perfb.com的任何信息,我们告诉您最可能的问题是什么。如果您无法从中解决问题,我建议您询问服务提供商(api.perfb.com员工),因为他们是唯一能够向您提供错误原因准确信息的人。但是,“我没有使用任何查询”是错误的:您的
curl\u exec($ch)
正在执行一个查询。不,我只是得到api调用的响应。该调用失败了…:-(API是否公开?可能您的浏览器验证为匿名用户,具有无限访问权限,并且您脚本的用户受到API作者的限制?或者反之亦然?我刚刚对这部分进行了注释//curl_setopt($ch,CURLOPT_POSTFIELDS,$vJson);并使用了curl_setopt($ch,CURLOPT_URL,$URL);其中$URL=“;”;现在它可以工作了……但我不确定使用CURLOPT_POSTFIELDS时到底是什么问题!!不,我只是得到了api调用的响应..失败了…:-(API是否公开?可能您的浏览器验证为匿名用户,具有无限访问权限,并且您脚本的用户受到API作者的限制?或者反之亦然?我刚刚对这部分进行了注释//curl_setopt($ch,CURLOPT_POSTFIELDS,$vJson);并使用了curl_setopt($ch,CURLOPT_URL,$URL);其中$URL=“;”;现在它工作了……但我不确定使用CURLOPT_POSTFIELDS时到底是什么问题!!