我试图将zip文件上传到S3亚马逊,但我有问题。 我正在使用QT:发送请求和接收回复。 我发送带有zip文件的URL这里是代码:
QFile *file = new QFile(fileName);
QString fileSize = QString::number(file->size());
file->open(QIODevice::ReadOnly);
QByteArray data(file->readAll());
QNetworkRequest req;
QNetworkReply* rep;
req.setUrl(QUrl(url /*cant post the real URL*/));
req.setRawHeader(QString("Content-Length").toUtf8(), fileSize.toUtf8());
rep = m_manager->post(req, data);
connect(rep, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
CheckReply(rep);
这里是CheckReply函数
bool CheckReply(QNetworkReply *reply)
{
if (reply->error())
{
qDebug() << "ERROR!";
qDebug() << reply->errorString();
return false;
}
else
{
qDebug() << reply->header(QNetworkRequest::ContentTypeHeader).toString();
qDebug() << reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().toString();
qDebug() << reply->header(QNetworkRequest::ContentLengthHeader).toULongLong();
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
qDebug() << reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
return true;
}
}
问题是,CheckReply()显示了这个消息:&#34;错误下载 - 请求URL - &#34;。 为什么会发生这种情况,上传不下载。
感谢
答案 0 :(得分:0)
好的,我发现问题,以防任何人遇到同样的问题。
错误是我使用QUrl(QSting)
来设置请求网址。
而不是使用它:QUrl::fromEncoded(QByteArray)
或
QUrl::fromEncoded(/your QString/.toUtf8())
。