我正在尝试向受保护的网页发出请求,因此我尝试在QAuthenticator()
的帮助下进行身份验证。但是,我收到以下错误:
mgr.authenticationRequired(response, auth)
TypeError: native Qt signal is not callable
这是我脚本的一部分:
def authenticate(self):
username = 'user'
password = 'pass'
url = 'http://someurl.com'
mgr = QNetworkAccessManager(self)
auth = QAuthenticator()
auth.setUser(username)
auth.setPassword(password)
response = QNetworkRequest()
response.setUrl(QUrl(url))
mgr.authenticationRequired(mgr.get(response), auth)
我在这里做错了什么?
答案 0 :(得分:3)
如错误消息所示,您无法调用PyQt信号。相反,您必须使用emit()
方法:
mgr.authenticationRequired.emit(mgr.get(response), auth)
答案 1 :(得分:0)
为什么要发出信号?我对该协议的理解是,当网络上的服务器想要认证时,QNAM将发出该信号。您的程序应连接到该信号,而不是发出它。 “连接到此信号的插槽应填充验证器对象中内容的凭证(可通过检查应答对象确定)。”我可能错了你正在尝试的东西。