Exemple #1
0
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()));
}
Exemple #5
0
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_;
}