有个不必现错误,预览初步完成
This commit is contained in:
@@ -32,18 +32,31 @@ void TCHttpService::apiLogin()
|
||||
|
||||
QNetworkReply* reply = nullptr;
|
||||
|
||||
QNetworkRequest request(url);
|
||||
QNetworkRequest request(url);
|
||||
for (auto ite = headers.constBegin(); ite != headers.constEnd(); ite++){
|
||||
request.setRawHeader(ite.key().toUtf8(), ite.value().toUtf8());
|
||||
}
|
||||
reply = m_manager.post(request, jsonData);
|
||||
reply = m_manager.post(request, jsonData);
|
||||
|
||||
QObject::connect(reply, &QNetworkReply::finished, [this, reply]() {
|
||||
QObject::connect(reply, &QNetworkReply::finished, [this, reply]() {
|
||||
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll());
|
||||
if (jsonDoc.isEmpty())
|
||||
return;
|
||||
QJsonObject jsonObj = jsonDoc.object();
|
||||
int code = jsonObj["code"].toInt();
|
||||
if (code == 0) {
|
||||
this->m_token = jsonObj["token"].toString();
|
||||
qDebug() << this->m_token;
|
||||
m_isOnline = true;
|
||||
emit signal_loginSuc();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
emit requestFinished(reply, "login");
|
||||
});
|
||||
}
|
||||
|
||||
#if 0
|
||||
void TCHttpService::apiMyfileCount()
|
||||
{
|
||||
|
||||
@@ -155,7 +168,7 @@ void TCHttpService::apiMd5(const QString& filePath)
|
||||
emit requestFinished(reply, "md5");
|
||||
});
|
||||
}
|
||||
|
||||
#endif
|
||||
void TCHttpService::apiUpload(const QString &filePath)
|
||||
{
|
||||
|
||||
@@ -229,10 +242,14 @@ void TCHttpService::apiUpload(const QString &filePath)
|
||||
connect(reply, &QNetworkReply::finished, this, [=]() {
|
||||
if (reply->error() == QNetworkReply::NoError) {
|
||||
qDebug() << "上传成功:";
|
||||
apiMyfileCount();
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(reply->readAll());
|
||||
QJsonObject jsonObj = jsonDoc.object();
|
||||
QString fileUrl = jsonObj["url"].toString();
|
||||
emit signal_uploadFileSec(fileUrl);
|
||||
} else {
|
||||
qDebug() << "上传失败:" << reply->errorString();
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
multiPart->deleteLater();
|
||||
});
|
||||
@@ -272,6 +289,7 @@ void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString
|
||||
this->m_domain = domain;
|
||||
this->m_userName = userName;
|
||||
this->m_firstPwd = firstPwd;
|
||||
#if 0
|
||||
connect(this, &TCHttpService::requestFinished, [this](QNetworkReply* reply, QString api){
|
||||
QByteArray rawData = reply->readAll();
|
||||
if (api == "login") {
|
||||
@@ -284,11 +302,13 @@ void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString
|
||||
if (code == 0) {
|
||||
this->m_token = jsonObj["token"].toString();
|
||||
qDebug() << this->m_token;
|
||||
|
||||
apiMyfileCount();
|
||||
m_isOnline = true;
|
||||
emit signal_loginSuc();
|
||||
// apiMyfileCount();
|
||||
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
if (api == "myfilecount") {
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(rawData);
|
||||
if (jsonDoc.isEmpty())
|
||||
@@ -309,6 +329,7 @@ void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (api == "myfilenormal") {
|
||||
static int loginCnt = 0;
|
||||
|
||||
@@ -356,14 +377,14 @@ void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString
|
||||
qDebug() << "fileMap size:" << m_fileMap.size();
|
||||
#endif
|
||||
}
|
||||
if (!m_isOnline) {
|
||||
loginCnt++;
|
||||
qDebug() << "loginCnt:" << loginCnt;
|
||||
if (loginCnt == m_total/10+1) {
|
||||
m_isOnline = true;
|
||||
qDebug() << "login success";
|
||||
}
|
||||
}
|
||||
// if (!m_isOnline) {
|
||||
// loginCnt++;
|
||||
// qDebug() << "loginCnt:" << loginCnt;
|
||||
// if (loginCnt == m_total/10+1) {
|
||||
// m_isOnline = true;
|
||||
// qDebug() << "login success";
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
// if (api == "upload") {
|
||||
@@ -376,8 +397,10 @@ void TCHttpService::setConfiguration(QString userName, QString firstPwd, QString
|
||||
// if (code == 0)
|
||||
// this->apiMyfileCount();
|
||||
// }
|
||||
#endif
|
||||
reply->deleteLater();
|
||||
});
|
||||
#endif
|
||||
apiLogin();
|
||||
}
|
||||
|
||||
@@ -396,6 +419,33 @@ void TCHttpService::setUploadNum(int nb)
|
||||
this->m_uploadNum = nb;
|
||||
}
|
||||
|
||||
void TCHttpService::downloadImage(const QString &requestId, const QUrl &imageUrl)
|
||||
{
|
||||
QNetworkRequest request(imageUrl);
|
||||
QNetworkReply* reply = m_manager.get(request);
|
||||
|
||||
connect(reply, &QNetworkReply::finished, [this, reply](){
|
||||
|
||||
QString requestId = m_pendingRequests.take(reply);
|
||||
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
emit signal_downloadFailed(requestId, reply->errorString());
|
||||
}
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
emit signal_downloadFailed(requestId, "Failed to load image data");
|
||||
}
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
});
|
||||
m_pendingRequests[reply] = requestId;
|
||||
}
|
||||
|
||||
QUrl TCHttpService::encodeUrl(QString urlStr, QMap<QString, QString> params)
|
||||
{
|
||||
QUrlQuery query;
|
||||
@@ -409,20 +459,27 @@ QUrl TCHttpService::encodeUrl(QString urlStr, QMap<QString, QString> params)
|
||||
return url;
|
||||
}
|
||||
|
||||
|
||||
void TCHttpService::updateFileMap(QJsonObject jsonObj)
|
||||
{
|
||||
// QString fileMD5 = jsonObj["md5"].toString();
|
||||
// QString fileUrl = jsonObj["http"].toString();
|
||||
|
||||
// QMap<QString, file_info_t>::iterator ite = m_fileMap.begin();
|
||||
// if (ite != m_fileMap.end())
|
||||
// return;
|
||||
|
||||
// m_fileMap.insert(fileMD5, fileUrl);
|
||||
}
|
||||
|
||||
TCHttpService::TCHttpService(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TCHttpService::slot_downloadFinished(QNetworkReply *reply)
|
||||
{
|
||||
QString requestId = m_pendingRequests.take(reply);
|
||||
|
||||
if (reply->error() != QNetworkReply::NoError) {
|
||||
emit signal_downloadFailed(requestId, reply->errorString());
|
||||
}
|
||||
else {
|
||||
QPixmap pixmap;
|
||||
if (pixmap.loadFromData(reply->readAll())) {
|
||||
emit signal_imageDownloaded(requestId, pixmap);
|
||||
}
|
||||
else {
|
||||
emit signal_downloadFailed(requestId, "Failed to load image data");
|
||||
}
|
||||
}
|
||||
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
@@ -14,9 +14,11 @@
|
||||
#include <QJsonArray>
|
||||
#include <QFile>
|
||||
#include <QFileInfo>
|
||||
#include <QPixmap>
|
||||
#include <QHttpMultiPart>
|
||||
#include <QHttpPart>
|
||||
#include <QHttpMultiPart>
|
||||
#include <QHash>
|
||||
|
||||
class TCHttpService : public QObject
|
||||
{
|
||||
@@ -34,9 +36,11 @@ public:
|
||||
static TCHttpService* getInstance();
|
||||
|
||||
void apiLogin();
|
||||
#if 0
|
||||
void apiMyfileCount();
|
||||
void apiMyfileNormal(int start, int count);
|
||||
void apiMd5(const QString& filePath);
|
||||
#endif
|
||||
void apiUpload(const QString& filePath);
|
||||
void apiSharePicShare(const QString& fileName, const QString& md5);
|
||||
void setConfiguration(QString userName, QString firstPwd, QString domain);
|
||||
@@ -44,16 +48,20 @@ public:
|
||||
bool getOnlineState();
|
||||
void setUploadNum(int nb);
|
||||
|
||||
void downloadImage(const QString& requestId, const QUrl& imageUrl);
|
||||
|
||||
private:
|
||||
|
||||
QUrl encodeUrl(QString url, QMap<QString, QString> params);
|
||||
void updateFileMap(QJsonObject jsonObj);
|
||||
|
||||
signals:
|
||||
void signal_loginSuc();
|
||||
void signal_uploadSuc();
|
||||
void signal_shareSuc();
|
||||
void signal_uploadFileSec(QString url);
|
||||
void requestFinished(QNetworkReply* reply, QString api);
|
||||
|
||||
void signal_imageDownloaded(const QString& requestId, const QPixmap& pixmap);
|
||||
void signal_downloadFailed(const QString& requestId, const QString& error);
|
||||
private:
|
||||
explicit TCHttpService(QObject *parent = nullptr);
|
||||
|
||||
@@ -72,6 +80,10 @@ private:
|
||||
|
||||
bool m_uploadNum = 0;
|
||||
|
||||
QHash<QNetworkReply*, QString> m_pendingRequests;
|
||||
|
||||
private slots:
|
||||
void slot_downloadFinished(QNetworkReply* reply);
|
||||
};
|
||||
|
||||
#endif // TCHTTPSERVICE_H
|
||||
|
||||
Reference in New Issue
Block a user