void O2Requestor::retry() { if (status_ != Requesting) { qWarning() << "O2Requestor::retry: No pending request"; return; } timedReplies_.remove(reply_); reply_->disconnect(this); reply_->deleteLater(); QUrl url = url_; /* #if QT_VERSION < 0x050000 url.addQueryItem(O2_OAUTH2_ACCESS_TOKEN, authenticator_->token()); #else QUrlQuery query(url); query.addQueryItem(O2_OAUTH2_ACCESS_TOKEN, authenticator_->token()); url.setQuery(query); #endif*/ request_.setRawHeader(O2_HTTP_AUTHORIZATION_HEADER,("OAuth " + authenticator_->token().toLatin1())); request_.setUrl(url); status_ = ReRequesting; switch (operation_) { case QNetworkAccessManager::GetOperation: reply_ = manager_->get(request_); break; case QNetworkAccessManager::PostOperation: reply_ = manager_->post(request_, data_); break; default: reply_ = manager_->put(request_, data_); } timedReplies_.add(reply_); connect(reply_, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError)), Qt::QueuedConnection); connect(reply_, SIGNAL(finished()), this, SLOT(onRequestFinished()), Qt::QueuedConnection); connect(reply_, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(onUploadProgress(qint64,qint64))); }
void imgUploader::uploadImage(QString FileName, QString PhpUploadURL, QString FieldName) { QUrl serviceUrl = QUrl(PhpUploadURL); QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QNetworkRequest request(serviceUrl); request.setRawHeader("User-Agent", UserAgent.toAscii()); QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + FieldName + "\"; filename=\"" + FileName + "\"")); QFile *file = new QFile(FileName); file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart file->open(QIODevice::ReadOnly); imagePart.setBodyDevice(file); multiPart->append(imagePart); // Call the webservice //QNetworkAccessManager *networkManager = new QNetworkAccessManager(this); currentUpload = manager.post(request, multiPart); connect(currentUpload,SIGNAL(uploadProgress(qint64,qint64)),this, SLOT(onUploadProgress(qint64,qint64))); connect(currentUpload, SIGNAL(finished()),this,SLOT(onUploadFinished())); Uploading = true; //reply->deleteLater(); }
void FileUpload::start() { //qDebug() << "FileUpload::start"; //qDebug() << " path: " << d_ptr->path; //qDebug() << " thread: " << QThread::currentThread(); FileUploadPrivate *d = static_cast<FileUploadPrivate *>(d_ptr); d->exchange = new NetworkExchange(d->request, this); if (d->netAccessManager) { d->exchange->setNetworkAccessManager(d->netAccessManager); } d->file = new QFile(d->path, this); if (!d->file->open(QFile::ReadOnly)) { setError(QNetworkReply::UnknownContentError, d->file->errorString()); emit error(this->error()); emit finished(); return; } connect(d->exchange, SIGNAL(replyReceived()), SLOT(onReplyReceived())); connect(d->exchange, SIGNAL(uploadProgress(qint64, qint64)), SLOT(onUploadProgress(qint64, qint64))); connect(d->exchange, SIGNAL(readyRead()), SLOT(onReadyRead())); connect(d->exchange, SIGNAL(redirected(const QUrl &)), SLOT(onRedirected(const QUrl &))); connect(d->exchange, SIGNAL(finished()), SLOT(onFinished())); connect(d->exchange, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(onError(QNetworkReply::NetworkError))); connect(&d->txTimer, SIGNAL(timeout()), this, SLOT(onDataTxTimeout())); emit started(); d->exchange->post(d->file); d->txTimer.start(d->txTimeout); }
//////////////////////////////////////////////////////////////////////////////// // CLASS uploadEbookReply //////////////////////////////////////////////////////////////////////////////// uploadEbookReply::uploadEbookReply( QNetworkReply *reply, QString MD5, QObject *parent) : QObject(parent) { this->reply = reply; this->MD5 = MD5; connect(this->reply, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(onUploadProgress(qint64,qint64))); //connect(this->reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead())); //connect(this->reply, SIGNAL(aboutToClose()), this, SLOT(slotAboutToClose())); }
int O2Requestor::put(const QNetworkRequest &req, const QByteArray &data) { if (-1 == setup(req, QNetworkAccessManager::PutOperation)) { return -1; } data_ = data; reply_ = manager_->put(request_, data_); timedReplies_.add(reply_); connect(reply_, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onRequestError(QNetworkReply::NetworkError)), Qt::QueuedConnection); connect(reply_, SIGNAL(finished()), this, SLOT(onRequestFinished()), Qt::QueuedConnection); connect(reply_, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(onUploadProgress(qint64,qint64))); return id_; }