47 |
47 |
48 self.__callmap = {} |
48 self.__callmap = {} |
49 |
49 |
50 self.__request = QNetworkRequest(QUrl(url)) |
50 self.__request = QNetworkRequest(QUrl(url)) |
51 self.__request.setRawHeader(b"User-Agent", b"E5XmlRpcClient/1.0") |
51 self.__request.setRawHeader(b"User-Agent", b"E5XmlRpcClient/1.0") |
52 self.__request.setHeader(QNetworkRequest.ContentTypeHeader, "text/xml") |
52 self.__request.setHeader( |
|
53 QNetworkRequest.KnownHeaders.ContentTypeHeader, "text/xml") |
53 |
54 |
54 def setUrl(self, url): |
55 def setUrl(self, url): |
55 """ |
56 """ |
56 Public slot to set the xmlrpc handler URL. |
57 Public slot to set the xmlrpc handler URL. |
57 |
58 |
75 type |
76 type |
76 """ |
77 """ |
77 if not isinstance(args, tuple): |
78 if not isinstance(args, tuple): |
78 raise TypeError("argument 'args' must be tuple") |
79 raise TypeError("argument 'args' must be tuple") |
79 |
80 |
80 QGuiApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) |
81 QGuiApplication.setOverrideCursor(QCursor(Qt.CursorShape.WaitCursor)) |
81 QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents) |
82 QGuiApplication.processEvents( |
|
83 QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents) |
82 |
84 |
83 data = xmlrpc.dumps(args, method).encode("utf-8") |
85 data = xmlrpc.dumps(args, method).encode("utf-8") |
84 reply = self.__networkManager.post( |
86 reply = self.__networkManager.post( |
85 self.__request, QByteArray(data)) |
87 self.__request, QByteArray(data)) |
86 self.__callmap[reply] = (responseCallback, errorCallback) |
88 self.__callmap[reply] = (responseCallback, errorCallback) |
99 |
101 |
100 @param reply reference to the reply object (QNetworkReply) |
102 @param reply reference to the reply object (QNetworkReply) |
101 @param errors list of SSL errors (list of QSslError) |
103 @param errors list of SSL errors (list of QSslError) |
102 """ |
104 """ |
103 QGuiApplication.restoreOverrideCursor() |
105 QGuiApplication.restoreOverrideCursor() |
104 QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents) |
106 QGuiApplication.processEvents( |
|
107 QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents) |
105 |
108 |
106 ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0] |
109 ignored = self.__sslErrorHandler.sslErrorsReply(reply, errors)[0] |
107 if ignored == E5SslErrorHandler.NotIgnored and reply in self.__callmap: |
110 if ignored == E5SslErrorHandler.NotIgnored and reply in self.__callmap: |
108 self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR, self.tr( |
111 self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR, self.tr( |
109 "SSL Error")) |
112 "SSL Error")) |
116 """ |
119 """ |
117 if reply not in self.__callmap: |
120 if reply not in self.__callmap: |
118 return |
121 return |
119 |
122 |
120 QGuiApplication.restoreOverrideCursor() |
123 QGuiApplication.restoreOverrideCursor() |
121 QGuiApplication.processEvents(QEventLoop.ExcludeUserInputEvents) |
124 QGuiApplication.processEvents( |
|
125 QEventLoop.ProcessEventsFlag.ExcludeUserInputEvents) |
122 |
126 |
123 if reply.error() != QNetworkReply.NoError: |
127 if reply.error() != QNetworkReply.NetworkError.NoError: |
124 self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR, |
128 self.__callmap[reply][1](xmlrpc.TRANSPORT_ERROR, |
125 reply.errorString()) |
129 reply.errorString()) |
126 else: |
130 else: |
127 data = bytes(reply.readAll()).decode("utf-8") |
131 data = bytes(reply.readAll()).decode("utf-8") |
128 try: |
132 try: |