0

问题:程序在使用此代码访问网站时面临500 Internal Error:(我使用 PyQt)

仅在我的Windows机器(WIN7)上发生,而不在我的 linux(ubuntu 12.04 LTS)上发生,仅供参考,它们是不同的计算机(但在同一个局域网上)

def sendBearer_req(self):
    request = QNetworkRequest()
    request.setUrl(QUrl("https://api.twitter.com/oauth2/token"))
    request.setRawHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8')
    request.setRawHeader('Authorization', 'Basic %s' % cons_enc)

    self.network_manager = QNetworkAccessManager()
    if self.network_manager.receivers(SIGNAL("finished")) > 0:
        self.network_manager.finished.disconnect()
    self.network_manager.finished.connect(self._request_finished)        

    self.network_manager.post(request, self.urlencode_post({'grant_type' : 'client_credentials'}))

def _request_finished(self, reply):
    if not reply.error() == QNetworkReply.NoError:
        # request probably failed
        print(reply.error())
        print(reply.errorString())
        print("retrying")
        self.sendBearer_req()
    else:
        self.sendBearer(reply)

输出:

299    
Error downloading URL - server replied: Internal Server Error    
retrying

其中 URL 是页面 URL。


  • 我尝试了许多 URL,以防问题确实出在服务器本身,但事实并非如此。
  • cons_enc有效(b64 编码字符串)

如何解决?如果你知道为什么在 ubuntu 中它可以工作?

4

2 回答 2

0

状态代码 299 是非标准的,Twitter API 错误代码参考没有列出它。可能原因与此代码存根无关

QNetworkReply代码 299 定义为“未知错误”,可能是 Qt 错误。

作为建议,请尝试使用适当的Twitter API for Python

于 2013-05-06T18:06:36.040 回答
0

发现问题,显然我在 Windows 上的 Python 3.3 上意外运行了它,它是为 Python 2.7(在 linux 盒子中使用的)构建的。

也许 PyQt 应该在启动之前检查一下!

于 2013-05-06T20:04:45.667 回答