Helpviewer/Network/FollowRedirectReply.py

branch
Py2 comp.
changeset 3057
10516539f238
parent 2525
8b507a9a2d40
parent 3002
6ffc581f00f1
child 3145
a9de05d4a22f
equal deleted inserted replaced
3056:9986ec0e559a 3057:10516539f238
13 from PyQt4.QtNetwork import QNetworkRequest 13 from PyQt4.QtNetwork import QNetworkRequest
14 14
15 15
16 class FollowRedirectReply(QObject): 16 class FollowRedirectReply(QObject):
17 """ 17 """
18 Class implementing a network reply delegate allowing to check redirects 18 Class implementing a network reply delegate allowing to check redirects.
19 """ 19 """
20 finished = pyqtSignal() 20 finished = pyqtSignal()
21 21
22 def __init__(self, url, manager, maxRedirects=5): 22 def __init__(self, url, manager, maxRedirects=5):
23 """ 23 """
24 Constructor 24 Constructor
25 25
26 @param url URL to get (QUrl) 26 @param url URL to get (QUrl)
27 @param manager reference to the network access manager (QNetworkAccessManager) 27 @param manager reference to the network access manager
28 (QNetworkAccessManager)
28 @keyparam maxRedirects maximum allowed redirects (integer) 29 @keyparam maxRedirects maximum allowed redirects (integer)
29 """ 30 """
30 super(FollowRedirectReply, self).__init__() 31 super(FollowRedirectReply, self).__init__()
31 32
32 self.__manager = manager 33 self.__manager = manager
92 93
93 def __replyFinished(self): 94 def __replyFinished(self):
94 """ 95 """
95 Private slot handling the receipt of the requested data. 96 Private slot handling the receipt of the requested data.
96 """ 97 """
97 replyStatus = self.__reply.attribute(QNetworkRequest.HttpStatusCodeAttribute) 98 replyStatus = self.__reply.attribute(
99 QNetworkRequest.HttpStatusCodeAttribute)
98 if (replyStatus != 301 and replyStatus != 302) or \ 100 if (replyStatus != 301 and replyStatus != 302) or \
99 self.__redirectCount == self.__maxRedirects: 101 self.__redirectCount == self.__maxRedirects:
100 self.finished.emit() 102 self.finished.emit()
101 return 103 return
102 104
103 self.__redirectCount += 1 105 self.__redirectCount += 1
104 106
105 redirectUrl = self.__reply.attribute(QNetworkRequest.RedirectionTargetAttribute) 107 redirectUrl = self.__reply.attribute(
108 QNetworkRequest.RedirectionTargetAttribute)
106 self.__reply.close() 109 self.__reply.close()
107 ## self.__reply.finished[()].disconnect(self.__replyFinished)
108 self.__reply.deleteLater() 110 self.__reply.deleteLater()
109 self.__reply = None 111 self.__reply = None
110 112
111 self.__reply = self.__manager.get(QNetworkRequest(redirectUrl)) 113 self.__reply = self.__manager.get(QNetworkRequest(redirectUrl))
112 self.__reply.finished[()].connect(self.__replyFinished) 114 self.__reply.finished[()].connect(self.__replyFinished)

eric ide

mercurial