QGIS API Documentation
2.2.0-Valmiera
|
HTTP request/response manager that is redirect-aware. More...
#include <qgshttptransaction.h>
Public Slots | |
void | dataStarted (int id) |
void | dataHeaderReceived (const QHttpResponseHeader &resp) |
void | dataReceived (const QHttpResponseHeader &resp) |
void | dataProgress (int done, int total) |
void | dataFinished (int id, bool error) |
void | transactionFinished (bool error) |
void | dataStateChanged (int state) |
void | networkTimedOut () |
void | abort () |
Aborts the current transaction. |
Signals | |
void | setProgress (int done, int total) |
legacy code. | |
void | dataReadProgress (int theProgress) |
Signal for progress update. | |
void | totalSteps (int theTotalSteps) |
Signal for adjusted number of steps. | |
void | statusChanged (QString theStatusQString) |
emit a signal to be caught by qgisapp and display a msg on status bar |
Public Member Functions | |
QgsHttpTransaction (QString uri, QString proxyHost=QString(), int proxyPort=80, QString proxyUser=QString(), QString proxyPass=QString(), QNetworkProxy::ProxyType proxyType=QNetworkProxy::NoProxy, QString userName=QString(), QString password=QString()) | |
Constructor. | |
virtual | ~QgsHttpTransaction () |
Destructor. | |
void | getAsynchronously () |
bool | getSynchronously (QByteArray &respondedContent, int redirections=0, const QByteArray *postData=0) |
Gets the response synchronously. | |
QString | responseContentType () |
QString | errorString () |
If an operation returns 0 (e.g. | |
void | setCredentials (const QString &username, const QString &password) |
Set the credentials (username and password) | |
int | networkTimeout () const |
Returns the network timeout in msec. | |
void | setNetworkTimeout (int msec) |
Sets the network timeout in milliseconds. |
Static Public Member Functions | |
static bool | applyProxySettings (QHttp &http, const QString &url) |
Apply proxy settings from QSettings to a http object. |
Private Member Functions | |
QgsHttpTransaction () | |
Default constructor is forbidden. |
Private Attributes | |
QHttp * | http |
Indicates the associated QHttp object. | |
int | httpid |
Indicates the QHttp ID. | |
bool | httpactive |
Indicates if the transaction is in progress. | |
QByteArray | httpresponse |
QString | httpresponsecontenttype |
QString | httpurl |
The original URL requested for this transaction. | |
QString | httphost |
The host being used for this transaction. | |
QString | httpredirecturl |
If not empty, indicates that the QHttp is a redirect to the contents of this variable. | |
int | httpredirections |
Number of http redirections this transaction has been subjected to. | |
QTimer * | mWatchdogTimer |
Indicates the associated QTimer object - used to detect network timeouts. | |
QString | mError |
The error message associated with the last HTTP error. | |
QString | mUserName |
User name. | |
QString | mPassword |
Password. | |
int | mNetworkTimeoutMsec |
Network timeout in milliseconds. |
HTTP request/response manager that is redirect-aware.
This class extends the Qt QHttp concept by being able to recognise and respond to redirection responses (e.g. HTTP code 302)
Definition at line 36 of file qgshttptransaction.h.
QgsHttpTransaction::QgsHttpTransaction | ( | QString | uri, |
QString | proxyHost = QString() , |
||
int | proxyPort = 80 , |
||
QString | proxyUser = QString() , |
||
QString | proxyPass = QString() , |
||
QNetworkProxy::ProxyType | proxyType = QNetworkProxy::NoProxy , |
||
QString | userName = QString() , |
||
QString | password = QString() |
||
) |
Constructor.
Definition at line 38 of file qgshttptransaction.cpp.
References mNetworkTimeoutMsec.
|
virtual |
|
private |
Default constructor is forbidden.
Definition at line 61 of file qgshttptransaction.cpp.
|
slot |
Aborts the current transaction.
Definition at line 556 of file qgshttptransaction.cpp.
References http.
|
static |
Apply proxy settings from QSettings to a http object.
Definition at line 499 of file qgshttptransaction.cpp.
Referenced by getSynchronously().
|
slot |
Definition at line 334 of file qgshttptransaction.cpp.
References http, httpactive, httpresponse, mError, QgsDebugMsg, and tr.
Referenced by getSynchronously().
|
slot |
Definition at line 259 of file qgshttptransaction.cpp.
References httpredirecturl, httpresponsecontenttype, mError, mNetworkTimeoutMsec, mWatchdogTimer, QgsDebugMsg, and tr.
Referenced by getSynchronously().
|
slot |
Definition at line 309 of file qgshttptransaction.cpp.
References dataReadProgress(), mNetworkTimeoutMsec, mWatchdogTimer, statusChanged(), totalSteps(), and tr.
Referenced by getSynchronously().
|
signal |
Signal for progress update.
Referenced by dataProgress(), and getSynchronously().
|
slot |
Definition at line 290 of file qgshttptransaction.cpp.
References http, and httpresponse.
Referenced by getSynchronously().
|
slot |
Definition at line 252 of file qgshttptransaction.cpp.
References QgsDebugMsg.
Referenced by getSynchronously().
|
slot |
Definition at line 428 of file qgshttptransaction.cpp.
References httphost, httpurl, mNetworkTimeoutMsec, mWatchdogTimer, QgsDebugMsg, statusChanged(), and tr.
Referenced by getSynchronously().
QString QgsHttpTransaction::errorString | ( | ) |
If an operation returns 0 (e.g.
getSynchronously()), this function returns the text of the error associated with the failure. Interactive users of this provider can then, for example, call a QMessageBox to display the contents.
Definition at line 494 of file qgshttptransaction.cpp.
References mError.
void QgsHttpTransaction::getAsynchronously | ( | ) |
Definition at line 77 of file qgshttptransaction.cpp.
bool QgsHttpTransaction::getSynchronously | ( | QByteArray & | respondedContent, |
int | redirections = 0 , |
||
const QByteArray * | postData = 0 |
||
) |
Gets the response synchronously.
Note that signals will still be emitted while in this function.
The function returns false if there is an error while getting the response.
[out] | respondedContent | is replaced with the new content. |
[in] | redirections | is used to measure how many http redirections we've been through. Clients typically don't need to set this. |
postData | data to send with the http message. This is only used for HTTP POST. If 0 then the request is done with HTTP GET. |
Definition at line 84 of file qgshttptransaction.cpp.
References applyProxySettings(), dataFinished(), dataHeaderReceived(), dataProgress(), dataReadProgress(), dataReceived(), dataStarted(), dataStateChanged(), getSynchronously(), http, HTTP_PORT_DEFAULT, httpactive, httphost, httpid, httpredirections, httpredirecturl, httpresponse, httpurl, mError, mNetworkTimeoutMsec, mPassword, mUserName, mWatchdogTimer, networkTimedOut(), QgsDebugMsg, setCredentials(), statusChanged(), and transactionFinished().
Referenced by getSynchronously().
|
slot |
Definition at line 481 of file qgshttptransaction.cpp.
References httpactive, mError, mNetworkTimeoutMsec, QgsDebugMsg, and tr.
Referenced by getSynchronously().
|
inline |
Returns the network timeout in msec.
Definition at line 99 of file qgshttptransaction.h.
QString QgsHttpTransaction::responseContentType | ( | ) |
Definition at line 246 of file qgshttptransaction.cpp.
References httpresponsecontenttype.
void QgsHttpTransaction::setCredentials | ( | const QString & | username, |
const QString & | password | ||
) |
Set the credentials (username and password)
Definition at line 72 of file qgshttptransaction.cpp.
References mPassword, and mUserName.
Referenced by getSynchronously().
|
inline |
Sets the network timeout in milliseconds.
Definition at line 101 of file qgshttptransaction.h.
|
signal |
legacy code.
This signal is currently not emitted and only kept for API compatibility
|
signal |
emit a signal to be caught by qgisapp and display a msg on status bar
Referenced by dataProgress(), dataStateChanged(), and getSynchronously().
|
signal |
Signal for adjusted number of steps.
Referenced by dataProgress().
|
slot |
Definition at line 383 of file qgshttptransaction.cpp.
References http, httpactive, httpresponse, mError, QgsDebugMsg, and tr.
Referenced by getSynchronously().
|
private |
Indicates the associated QHttp object.
Definition at line 151 of file qgshttptransaction.h.
Referenced by abort(), dataFinished(), dataReceived(), getSynchronously(), and transactionFinished().
|
private |
Indicates if the transaction is in progress.
Definition at line 161 of file qgshttptransaction.h.
Referenced by dataFinished(), getSynchronously(), networkTimedOut(), and transactionFinished().
|
private |
The host being used for this transaction.
Definition at line 181 of file qgshttptransaction.h.
Referenced by dataStateChanged(), and getSynchronously().
|
private |
Indicates the QHttp ID.
Definition at line 156 of file qgshttptransaction.h.
Referenced by getSynchronously().
|
private |
Number of http redirections this transaction has been subjected to.
TODO: Use this as part of a redirection loop detector
Definition at line 196 of file qgshttptransaction.h.
Referenced by getSynchronously().
|
private |
If not empty, indicates that the QHttp is a redirect to the contents of this variable.
Definition at line 187 of file qgshttptransaction.h.
Referenced by dataHeaderReceived(), and getSynchronously().
|
private |
Definition at line 166 of file qgshttptransaction.h.
Referenced by dataFinished(), dataReceived(), getSynchronously(), and transactionFinished().
|
private |
Definition at line 171 of file qgshttptransaction.h.
Referenced by dataHeaderReceived(), and responseContentType().
|
private |
The original URL requested for this transaction.
Definition at line 176 of file qgshttptransaction.h.
Referenced by dataStateChanged(), and getSynchronously().
|
private |
The error message associated with the last HTTP error.
Definition at line 206 of file qgshttptransaction.h.
Referenced by dataFinished(), dataHeaderReceived(), errorString(), getSynchronously(), networkTimedOut(), and transactionFinished().
|
private |
Network timeout in milliseconds.
Definition at line 219 of file qgshttptransaction.h.
Referenced by dataHeaderReceived(), dataProgress(), dataStateChanged(), getSynchronously(), networkTimedOut(), and QgsHttpTransaction().
|
private |
Password.
Definition at line 216 of file qgshttptransaction.h.
Referenced by getSynchronously(), and setCredentials().
|
private |
User name.
Definition at line 211 of file qgshttptransaction.h.
Referenced by getSynchronously(), and setCredentials().
|
private |
Indicates the associated QTimer object - used to detect network timeouts.
Definition at line 201 of file qgshttptransaction.h.
Referenced by dataHeaderReceived(), dataProgress(), dataStateChanged(), and getSynchronously().