0

我正在使用 Reddit 的 API 来获取给定 URL 的投票计数(我正在这样做,http://www.reddit.com/api/info.json? url= $url)。我总是收到错误 500 消息。我在下面给你我的代码片段。任何人都可以帮助我吗?

$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,15);     
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
$content = curl_exec($ch);
echo $content;
curl_close($ch);

Echo 总是在下一行返回给我。

<html><body><h1>500 Server Error</h1>An internal server error occured.</body></html>

谢谢阅读。

--- 已编辑 ---

它在本地工作。

4

1 回答 1

0

$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";

reddit 的API 规则对用户代理做了以下规定:

  • 将您客户的 User-Agent 字符串更改为独特且具有描述性的字符串,最好引用您的 reddit 用户名。
    • 示例:用户代理:/u/spladug 的 super happy flair bot v1.0
    • 许多默认的用户代理(如“Python/urllib”或“Java”)被严格限制为鼓励独特和描述性的用户代理字符串。
    • 如果您正在制作应用程序供他人使用,请在用户代理中包含版本号。这使我们能够阻止有缺陷的版本,而不会阻止您应用的所有版本。
    • 永远不要对你的用户代理撒谎。这包括欺骗流行的浏览器和欺骗其他机器人。我们将禁止带有极端偏见的说谎者。

这并不能解释 500 错误,但是,如果在您使用浏览器时相同的 URL 可以正常工作,我会从这里开始。如果您在使用浏览器时也收到 500 个错误,那么您可能没有info正确使用 API(因此发现了一个错误)。

于 2013-01-14T16:54:20.633 回答