TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicdatasourcerequest.cpp
Go to the documentation of this file.
2 
4  : MusicAbstractNetwork(parent)
5 {
6 
7 }
8 
10 {
12  deleteLater();
13 }
14 
16 {
17  QNetworkRequest request;
18  request.setUrl(url);
19  TTK::setSslConfiguration(&request);
20  TTK::makeUserAgentHeader(&request);
22 
23  m_reply = m_manager.get(request);
24  connect(m_reply, SIGNAL(finished()), SLOT(downLoadFinished()));
26 }
27 
29 {
31  if(m_reply && m_reply->error() == QNetworkReply::NoError)
32  {
33  const QVariant &redirection = m_reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
34  if(redirection.isValid())
35  {
36  const QString &url = redirection.toString();
38  startToRequest(url);
39  }
40  else
41  {
42  Q_EMIT downLoadRawDataChanged(m_reply->readAll());
43  deleteAll();
44  }
45  }
46  else
47  {
48  TTK_ERROR_STREAM("Download source data error");
49  Q_EMIT downLoadRawDataChanged({});
50  deleteAll();
51  }
52 }
virtual void deleteAll()
MusicDataSourceRequest(QObject *parent=nullptr)
void downLoadRawDataChanged(const QByteArray &bytes)
QNetworkReply * m_reply
TTK_MODULE_EXPORT void makeUserAgentHeader(QNetworkRequest *request, const QByteArray &data={})
TTK_MODULE_EXPORT void setSslConfiguration(QNetworkRequest *request, QSslSocket::PeerVerifyMode mode=QSslSocket::VerifyNone)
virtual void downLoadFinished()
QNetworkAccessManager m_manager
virtual void deleteAll() overridefinal
virtual void downLoadFinished() overridefinal
virtual void replyError(QNetworkReply::NetworkError error) override
#define TTK_SLOT
Definition: ttkqtglobal.h:165
The class of the abstract network.
void startToRequest(const QString &url)
TTK_MODULE_EXPORT void makeContentTypeHeader(QNetworkRequest *request, const QByteArray &data={})
#define TTK_ERROR_STREAM(msg)
Definition: ttklogger.h:69
#define QtNetworkErrorConnect(p, q, f, s)
Network error connect.
Definition: ttkqtcompat.h:59