5 #include <QtXml/QDomDocument>
16 const QString &method =
"GET";
22 headers.insert(
"Host", host);
24 headers.insert(
"Content-Type",
"charset=utf-8");
26 d->insertAuthorization(method, headers, resource);
31 for(
auto it = headers.constBegin(); it != headers.constEnd(); ++it)
33 request.setRawHeader(it.key().toUtf8(), it.value().toUtf8());
36 QNetworkReply *reply = d->m_manager->get(request);
43 QSyncDataItemList items;
44 QNetworkReply *reply =
TTKObjectCast(QNetworkReply*, sender());
45 if(reply && reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 200)
48 if(docment.setContent(reply->readAll()))
50 const QDomNodeList &nodes = docment.elementsByTagName(
"Contents");
51 for(
int i = 0; i < nodes.count(); ++i)
54 const QDomNodeList &childList = nodes.item(i).childNodes();
55 for(
int j = 0; j < childList.count(); ++j)
57 const QDomNode &node = childList.item(j);
58 const QString &
name = node.nodeName();
59 const QString &text = node.toElement().text();
65 else if(name ==
"LastModified")
67 QDateTime date = QDateTime::fromString(text,
"yyyy-MM-ddThh:mm:ss.zzzZ");
68 date = date.addSecs(8 * 60 * 60);
71 else if(name ==
"ETag")
77 else if(name ==
"Size")
79 item.
m_size = text.toInt();
81 else if(name ==
"Type")
85 else if(name ==
"Owner")
void request(const QString &bucket)
void replyError(QNetworkReply::NetworkError error)
void receiveFinshed(const QSyncDataItemList &items)
The class of the sync data item.
The class of the sync cloud data interface.
virtual void receiveDataFromServer() overridefinal
#define TTK_DATE_TIMEM_FORMAT
QSyncListData(QNetworkAccessManager *networkManager, QObject *parent=nullptr)
QMap< QString, QString > TTKStringMap
#define QtNetworkErrorConnect(p, q, f, s)
Network error connect.
#define TTKObjectCast(x, y)