QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
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:
48
50
59 void fetchContent( const QUrl &url, const QString &authcfg = QString(), const QgsHttpHeaders &headers = QgsHttpHeaders() );
60
69 void fetchContent( const QNetworkRequest &request, const QString &authcfg = QString() );
70
75 QNetworkReply *reply();
76
82 QString contentDispositionFilename() const;
83
88 QString contentAsString() const;
89
94 void cancel();
95
101 bool wasCanceled() const;
102
103 signals:
104
108 void finished();
109
114 void downloadProgress( qint64 bytesReceived, qint64 bytesTotal );
115
121 void errorOccurred( QNetworkReply::NetworkError code, const QString &errorMsg );
122
123 private:
124 QString mAuthCfg;
125 std::unique_ptr<QNetworkReply> mReply;
126
127 bool mContentLoaded = false;
128
129 bool mIsCanceled = false;
130
136 QTextCodec *codecForHtml( QByteArray &array ) const;
137
138 private slots:
139
144 void contentLoaded( bool ok = true );
145};
146
147#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.