1

我正在使用 QNetworkAccessManager 模块,它适用于 HTTP 请求,但是当我尝试执行 https 请求时,它失败并返回:

PySide2.QtNetwork.QNetworkReply.NetworkError.UnknownNetworkError
and error string: TLS initialization failed

这个问题只发生在 Windows 上的 pyside2 上,但它在 Mac 操作系统上运行良好。

当我将同一段代码与 pyqt5 一起使用时,它在 Windows 和 Mac 操作系统上都运行良好。

https请求:

  • Windows上的pyside2:失败
  • mac上的pyside2:工作正常
  • 在 Windows 上:工作正常
  • mac上的pyqt5:工作正常

我坚持了一段时间,似乎找不到问题。

我正在使用 python 3.7 和 pyside2 5.15。另外,我用 pyside2 5.12.6 进行了测试,并且发生了同样的错误。

from PySide2 import QtNetwork
from PySide2 import QtCore
import sys, json

class Example:    
    def __init__(self):
        self.nam = QtNetwork.QNetworkAccessManager()
        self.nam.finished.connect(self.handle_response)
    
    def do_request(self):
        url = 'https://httpbin.org/get'
        req = QtNetwork.QNetworkRequest(QtCore.QUrl(url))
        self.nam.get(req)
    
    def handle_response(self, reply):
        er = reply.error()
        if er == QtNetwork.QNetworkReply.NoError:
            bytes_string = reply.readAll()
            print(str(bytes_string, 'utf-8'))
        else:
            print(f'Error occurred: {er}: {reply.errorString()}')
        QtCore.QCoreApplication.quit()

def main():
    app = QtCore.QCoreApplication([])
    ex = Example()
    ex.do_request()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()
4

0 回答 0