我正在编写一个 PyQt(功能强大的 Qt 库的 Python 绑定)应用程序,并且我的应用程序的一小部分需要 Web 浏览器(提示,OAuth)。所以我开始使用 QtWebkit,顺便说一下,它非常棒。唯一的问题是我想允许代理后面的用户使用我的应用程序。
我已经阅读了 QtNetwork 包中的 QNetworkProxy 类,并认为它应该可以解决问题。唯一的问题是,当我创建并应用代理时,它通过 HTTP 工作得很好,但是当我向它传递 HTTPS (SSL) URL 时,它会出现以下错误:
QSslSocket: cannot call unresolved function SSLv3_client_method
QSslSocket: cannot call unresolved function SSL_CTX_new
QSslSocket: cannot call unresolved function SSL_library_init
QSslSocket: cannot call unresolved function ERR_get_error
QSslSocket: cannot call unresolved function ERR_error_string
注意:当我跑步时...
QtNetwork.QSslSocket.supportsSsl()
..它返回错误。这就是我的问题的证明。
这是我的主要代码(就在我创建 QApplication 之前):
proxy = QtNetwork.QNetworkProxy()
proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
proxy.setHostName('localhost');
proxy.setPort(1337)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy);
我从那里得到了代码here http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qnetworkproxy.html但这个例子是用 C++ 编写的,而不是 Python,所以我不太确定我是否正确翻译了它。这可能就是问题所在。
EDIT:我已经通过 SOCKS5 和 HTTP 代理进行了尝试,它们都抛出了相同的错误。
我正在使用 Python 2.6 和 PyQt 4.7.4 在 Windows XP(32 位)上工作。原因是...
QtNetwork.QSslSocket.supportsSsl()
正在返回false是因为我没有安装OpenSSL 二进制文件到我的系统。
为了解决问题我去了here http://www.slproweb.com/products/Win32OpenSSL.html下载二进制文件。在他们正确安装之前,我还必须获得Visual C++ 2008 可再发行组件从微软安装。
现在一切都很好!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)