Joe*_*gen 5 python ssl https pyqt qtwebkit
我正在编写一个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
Run Code Online (Sandbox Code Playgroud)
注意:当我跑...
QtNetwork.QSslSocket.supportsSsl()
Run Code Online (Sandbox Code Playgroud)
..它返回false.这就证明了我的问题.
这是我的主要代码(它在我的QApplication创建之前):
proxy = QtNetwork.QNetworkProxy()
proxy.setType(QtNetwork.QNetworkProxy.Socks5Proxy)
proxy.setHostName('localhost');
proxy.setPort(1337)
QtNetwork.QNetworkProxy.setApplicationProxy(proxy);
Run Code Online (Sandbox Code Playgroud)
我从这里得到了代码,但是这个例子是用C++编写的,而不是Python,所以我不确定我是否正确翻译了它.这可能是问题所在.
编辑:我已经尝试过SOCKS5和HTTP代理,他们都抛出相同的错误.
我正在使用Python 2.6和PyQt 4.7.4开发Windows XP(32位).是......的原因
QtNetwork.QSslSocket.supportsSsl()
Run Code Online (Sandbox Code Playgroud)
返回false是因为我没有在我的系统中安装OpenSSL二进制文件.
为了解决这个问题,我去了这里下载二进制文件.在他们正确安装之前,我还必须从Microsoft 获得Visual C++ 2008 Redistributables安装.
现在一切都很好!
| 归档时间: |
|
| 查看次数: |
2673 次 |
| 最近记录: |