QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
qgsnetworkcontentfetcher.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsnetworkcontentfetcher.h
3 -------------------
4 begin : July, 2014
5 copyright : (C) 2014 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19
20#ifndef QGSNETWORKCONTENTFETCHER_H
21#define QGSNETWORKCONTENTFETCHER_H
22
23#include "qgis_core.h"
24#include "qgshttpheaders.h"
25
26#include <QNetworkReply>
27#include <QUrl>
28
29class QTextCodec;
30
42class CORE_EXPORT QgsNetworkContentFetcher : public QObject
43{
44 Q_OBJECT
45
46 public:
47
49
51
60 void fetchContent( const QUrl &url, const QString &authcfg = QString(), const QgsHttpHeaders &headers = QgsHttpHeaders() );
61
70 void fetchContent( const QNetworkRequest &request, const QString &authcfg = QString() );
71
76 QNetworkReply *reply();
77
83 QString contentDispositionFilename() const;
84
89 QString contentAsString() const;
90
95 void cancel();
96
102 bool wasCanceled() const;
103
104 signals:
105
109 void finished();
110
115 void downloadProgress( qint64 bytesReceived, qint64 bytesTotal );
116
122 void errorOccurred( QNetworkReply::NetworkError code, const QString &errorMsg );
123
124 private:
125
126 QString mAuthCfg;
127 std::unique_ptr<QNetworkReply> mReply;
128
129 bool mContentLoaded = false;
130
131 bool mIsCanceled = false;
132
138 QTextCodec *codecForHtml( QByteArray &array ) const;
139
140 private slots:
141
146 void contentLoaded( bool ok = true );
147
148};
149
150#endif
Implements simple HTTP header management.
QgsNetworkContentFetcher()=default
QString contentDispositionFilename() const
Returns the associated filename from the reply's content disposition header, if present.
void fetchContent(const QUrl &url, const QString &authcfg=QString(), const QgsHttpHeaders &headers=QgsHttpHeaders())
Fetches content from a remote URL and handles redirects.
void finished()
Emitted when content has loaded.
bool wasCanceled() const
Returns true if the fetching was canceled.
void errorOccurred(QNetworkReply::NetworkError code, const QString &errorMsg)
Emitted when an error with code error occurred while processing the request errorMsg is a textual des...
void cancel()
Cancels any ongoing request.
void downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
Emitted when data is received.
QNetworkReply * reply()
Returns a reference to the network reply.
QString contentAsString() const
Returns the fetched content as a string.