12 try: |
12 try: |
13 str = unicode |
13 str = unicode |
14 except NameError: |
14 except NameError: |
15 pass |
15 pass |
16 |
16 |
17 from PyQt5.QtCore import qVersion, QObject, QEventLoop, QByteArray |
17 from PyQt5.QtCore import QObject, QEventLoop, QByteArray |
18 from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, \ |
18 from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, \ |
19 QNetworkReply |
19 QNetworkReply |
20 |
20 |
21 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired |
21 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired |
|
22 |
|
23 from Globals import qVersionTuple |
22 |
24 |
23 |
25 |
24 class TranslatorRequest(QObject): |
26 class TranslatorRequest(QObject): |
25 """ |
27 """ |
26 Class implementing a synchronous network request handler for translation |
28 Class implementing a synchronous network request handler for translation |
86 b"Mozilla/5.0") |
88 b"Mozilla/5.0") |
87 request.setRawHeader(b"Content-Type", |
89 request.setRawHeader(b"Content-Type", |
88 self.__contentTypes[dataType]) |
90 self.__contentTypes[dataType]) |
89 request.setRawHeader(b"Content-Length", |
91 request.setRawHeader(b"Content-Length", |
90 QByteArray.number(requestData.size())) |
92 QByteArray.number(requestData.size())) |
91 if qVersion() >= "5.6.0": |
93 if qVersionTuple() >= (5, 6, 0): |
92 request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, |
94 request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, |
93 True) |
95 True) |
94 if extraHeaders: |
96 if extraHeaders: |
95 for name, value in extraHeaders: |
97 for name, value in extraHeaders: |
96 request.setRawHeader(name, value) |
98 request.setRawHeader(name, value) |
|
99 request.setUrl(requestUrl) |
97 reply = self.__networkManager.post(request, requestData) |
100 reply = self.__networkManager.post(request, requestData) |
98 if not self.__loop.isRunning(): |
101 if not self.__loop.isRunning(): |
99 self.__loop.exec_() |
102 self.__loop.exec_() |
100 if reply.error() != QNetworkReply.NoError: |
103 if reply.error() != QNetworkReply.NoError: |
101 return reply.errorString(), False |
104 return reply.errorString(), False |