仅在从 Windows 运行时出现 500 内部错误 (7)

Posted

技术标签:

【中文标题】仅在从 Windows 运行时出现 500 内部错误 (7)【英文标题】:500 internal error only when running from windows (7) 【发布时间】:2013-05-06 17:48:36 【问题描述】:

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

只发生在我的 windows 机器上 (WIN7) 而不是我的 linux (ubuntu 12.04 LTS) fyi 它们是不同的计算机(但在同一个 LAN 上)

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 中有效?

【问题讨论】:

【参考方案1】:

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

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

作为建议,请尝试使用正确的Twitter API for Python。

【讨论】:

这是一项禁止我使用 Twitter API 的作业。并且错误是 500 而不是 299(299 是 QNetworkReply 错误代码而不是 Twitter 错误代码) @Dan,不同的构建/版本? 解决了,是我的问题,我不小心用 Python3 在 windows 上运行它,它是为 Python2.7 设计的 我不敢相信 PyQt 在启动前不检查 Python 版本! @esseks:什么?为什么 PyQt 会检查 python 版本? PyQt 在 Py2 和 Py3 下运行得很好。并且您可以编写一个可以在两个版本下运行的代码。【参考方案2】:

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

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

【讨论】:

以上是关于仅在从 Windows 运行时出现 500 内部错误 (7)的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 开始时出现 500 个内部错误

尝试调用方法 imagerotate 时出现 500 内部服务器错误

尝试在 Apache 2.4.6 Ubuntu 13.10 上运行 perl cgi 文件时出现 500 内部服务器错误

尝试在 Apache 2.4.6 Ubuntu 13.10 上运行 perl cgi 文件时出现 500 内部服务器错误

在桌面平台中调用适配器时出现 500(内部服务器错误)问题

仅在运行单元测试时出现 OLE DB 异常“类未注册”