Всем ещё раз привет!
В документации к классу QFtp рекламируют новые высокоуровневые классы, как замену старым низкоуровневым, да и самому возня с QFtp надоела. Тесту ради написал следующий код (импорты и main пропущены):
class Test(QWidget):
def __init__(self):
QWidget.__init__(self)
self.manager = QNetworkAccessManager();
self.manager.finished.connect(self.finished)
self.manager.authenticationRequired.connect(self.auth)
self.l = QVBoxLayout()
self.btn = QPushButton()
self.btn.clicked.connect(self.put)
self.l.addWidget(self.btn)
self.setLayout(self.l)
def finished(self, reply):
print "Finished", reply.error(), reply.error() == QNetworkReply.NoError
QApplication.quit()
def auth(self, reply, auth):
print "authenticationRequired", auth.realm()
auth.setUser("ibdftp")
auth.setPassword("111111")
def put(self):
print "Putting"
self.f = QFile("/home/divius/test.tbz2")
self.f.open(QIODevice.ReadOnly)
self.request = QNetworkRequest(QUrl("ftp://127.0.0.1/Test/test.tbz2"))
self.manager.put(self.request, self.f)
print "Requested"
Не работает - auth вызывается 2 раза, после чего в finished() ошибка QNetworkReply.ContentAccessDenied. ЧЯДНТ?