Closed dorvak closed 10 years ago
Lösung könnte einfach darin bestehen, SSL Fehler zu ignorieren: http://qt-project.org/forums/viewthread/24754 Bzw: hier http://stackoverflow.com/questions/8362506/qwebview-qt-webkit-wont-open-some-ssl-pages-redirects-not-allowed
class QWebPageCustom(QWebPage):
logmessage = Signal(str)
def __init__(self,*args,**kwargs):
super(QWebPageCustom, self).__init__(*args,**kwargs)
#self.networkAccessManager().sslErrors.connect(on_ssl_errors)
def supportsExtension(self,extension):
if (extension == QWebPage.ErrorPageExtension):
return True
else:
return False
def extension(self,extension,option=0,output=0):
if (extension != QWebPage.ErrorPageExtension): return False
if (option.domain == QWebPage.QtNetwork):
msg = "Network error ("+ str(option.error)+"): "+option.errorString
elif (option.domain == QWebPage.Http):
msg = "HTTP error ("+ str(option.error)+"): "+option.errorString
elif(option.domain == QWebPage.WebKit):
msg = "WebKit error ("+ str(option.error)+"): "+option.errorString
else:
msg = option.errorString
print(option.url)
print(msg)
self.logmessage.emit(msg)
return False;
def on_ssl_errors(reply, errors):
url = unicode(reply.url().toString())
reply.ignoreSslErrors()
print "SSL certificate error ignored: %s" % url
In on_ssl_errors fehlt der self-Parameter.
Auch beim connecten des signals muss es self.on_ssl_errors heißen.
Außerdem sollte in der extension-Funktion am Ende glaube ich besser True zurückgegeben werden. Das überflüssige Semikolon verrät wohl, welche Programmiersprachen ich sonst so schreibe ;-)
Sollte so gehen, siehe commit im threading branch.
Danke für den Commit (das mit self war meiner Verwirrtheit geschuldet). Ich warte noch die Rückmeldung der Studentin ab, dann close ich. Das war ja gottseidank recht easy zu beheben (hoffen wir es).
Problem gelöst!
Der SSL Handshake scheint auf einem Windows-Rechner einer Anwenderin fehlzuschlagen, seltsamerweise nur mit der Facebook-Seite:
2014-01-09 10:13:34.022000 Network error (6): SSL handshake failed 2014-01-09 10:13:34.042000 Error loading web page
Vermutung: Facebook liefert irgendeine SSL-Information nicht mit, die QT haben will. Ist kaum debug-bar...