加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么这个Twitter API脚本失败了?

发布时间:2020-12-13 13:53:09 所属栏目:PHP教程 来源:网络整理
导读:我从这个Twitter脚本收到一个错误,导致页面的其余部分无法加载.不知道为什么突然发生这种情况,它在相当长的一段时间内正常运作. 脚本如下所示,它会提取用户当前状态: ?php $response = new SimpleXMLElement('http://twitter.com/users/show/tuscaroratackl
我从这个Twitter脚本收到一个错误,导致页面的其余部分无法加载.不知道为什么突然发生这种情况,它在相当长的一段时间内正常运作.

脚本如下所示,它会提取用户当前状态:

<?php  
$response = new SimpleXMLElement('http://twitter.com/users/show/tuscaroratackle.xml',NULL,TRUE);  
echo $response->status->text.'';  
?>

这是另一篇文章,我试图找出另一个错误的答案,这个错误指出了我的Twitter错误.

你可以在页脚中看到它here,或者输出的屏幕抓图:http://cl.ly/33IZ.

相关错误(显示在您链接到的页面的页脚中)是:
Warning: SimpleXMLElement::__construct(http://twitter.com/users/show/tuscaroratackle.xml) [simplexmlelement.--construct]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /home5/tuscaror/public_html/footer.php on line 47

Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: I/O warning : failed to load external entity "http://twitter.com/users/show/tuscaroratackle.xml" in /home5/tuscaror/public_html/footer.php on line 47

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home5/tuscaror/public_html/footer.php:47 Stack trace: #0 /home5/tuscaror/public_html/footer.php(47): SimpleXMLElement->__construct('http://twitter....',true) #1 /home5/tuscaror/public_html/index.php(119): include('/home5/tuscaror...') #2 {main} thrown in /home5/tuscaror/public_html/footer.php on line 47

第一个警告告诉您发生了什么:“HTTP请求失败!HTTP / 1.1 400错误请求”.

因此,出于某种原因,在向Twitter发送HTTP请求以检索文档“http://twitter.com/users/show/tuscaroratackle.xml”时,您的服务器失败了.返回码为400 Bad Request.

我刚刚从我的网络浏览器尝试了同样的请求,它工作正常,所以要么Twitter暂时“外出吃午饭”(这确实会不时发生),或者服务器的网络配置有一些独特之处.我的第一个猜测是,从您的服务器上游的某个地方,有人安装了一个HTTP代理(由于某种未知的原因)阻止您的请求.

这是什么twitter has to say about it:

400 Bad Request: The request was invalid.  An accompanying error message 
will explain why. This is the status code will be returned during rate limiting.

Here is twitter’s page on Rate Limiting.我怀疑这是你的罪魁祸首.如果您不这么认为,那么您可能会尝试将文档作为字符串检索并在尝试解析之前对其进行检查,以便您可以看到该消息是什么.

这很快,很脏,但它会收到消息,以便您可以看到正在发生的事情:

$str = file_get_contents('http://twitter.com/users/show/tuscaroratackle.xml');
echo $str;

由于400响应代码可能会失败.如果是这样,你需要使用php curl来获取未解析的响应体.

祝你好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读