321 void setAuthHandler( std::unique_ptr< QgsNetworkAuthenticationHandler > handler );
453 static int timeout();
462 static void setTimeout(
int time );
524 static QString setRequestPreprocessor(
const std::function<
void( QNetworkRequest *request )> &processor );
526 static QString setRequestPreprocessor( SIP_PYCALLABLE / AllowNone / );
531 Py_BEGIN_ALLOW_THREADS
536 PyObject *s = sipCallMethod( NULL, a0,
"D", arg, sipType_QNetworkRequest, NULL );
539 QString *t1 =
reinterpret_cast<QString *
>( sipConvertToType( s, sipType_QString, 0, SIP_NOT_NONE, &state, &sipIsError ) );
540 if ( sipIsError == 0 )
542 res = QString( *t1 );
544 sipReleaseType( t1, sipType_QString, state );
550 s = sipConvertFromNewType(
new QString(
id ), sipType_QString, 0 );
566 static bool removeRequestPreprocessor(
const QString &
id );
568 static void removeRequestPreprocessor(
const QString &
id );
572 PyErr_SetString( PyExc_KeyError, QStringLiteral(
"No processor with id %1 exists." ).arg( *a0 ).toUtf8().constData() );
594 static QString setAdvancedRequestPreprocessor(
const std::function<
void( QNetworkRequest *,
int &op, QByteArray *data )> &processor );
596 static QString setAdvancedRequestPreprocessor( SIP_PYCALLABLE / AllowNone / );
601 Py_BEGIN_ALLOW_THREADS
606 PyObject *requestObj = sipConvertFromType( reqArg, sipType_QNetworkRequest, NULL );
607 PyObject *postDataObj = sipConvertFromType(
new QByteArray( *data ), sipType_QByteArray, Py_None );
609 PyObject *result = sipCallMethod( NULL, a0,
"RiR", requestObj, op, postDataObj );
611 Py_XDECREF( requestObj );
612 Py_XDECREF( postDataObj );
614 if ( result && PyTuple_Check( result ) && PyTuple_Size( result ) == 2 )
617 PyObject *opObj = PyTuple_GetItem( result, 0 );
618 if ( opObj && PyLong_Check( opObj ) )
620 op =
static_cast<int>( PyLong_AsLong( opObj ) );
622 PyObject *dataObj = PyTuple_GetItem( result, 1 );
623 if ( dataObj && dataObj != Py_None )
627 QByteArray *modifiedData =
reinterpret_cast<QByteArray *
>( sipConvertToType( dataObj, sipType_QByteArray, 0, SIP_NOT_NONE, &dataState, &sipIsErr ) );
631 data->append( *modifiedData );
632 sipReleaseType( modifiedData, sipType_QByteArray, dataState );
637 Py_XDECREF( result );
642 s = sipConvertFromNewType(
new QString(
id ), sipType_QString, 0 );
658 static bool removeAdvancedRequestPreprocessor(
const QString &
id );
660 static void removeAdvancedRequestPreprocessor(
const QString &
id );
664 PyErr_SetString( PyExc_KeyError, QStringLiteral(
"No processor with id %1 exists." ).arg( *a0 ).toUtf8().constData() );
683 static QString setReplyPreprocessor(
const std::function<
void (
const QNetworkRequest &, QNetworkReply * )> &processor );
685 static QString setReplyPreprocessor( SIP_PYCALLABLE / AllowNone / );
690 Py_BEGIN_ALLOW_THREADS
694 Py_XDECREF( sipCallMethod( NULL, a0,
"ND",
new QNetworkRequest( request ), sipType_QNetworkRequest, NULL, reply, sipType_QNetworkReply, NULL ) );
699 s = sipConvertFromNewType(
new QString(
id ), sipType_QString, 0 );
715 static bool removeReplyPreprocessor(
const QString &
id );
717 static void removeReplyPreprocessor(
const QString &
id );
721 PyErr_SetString( PyExc_KeyError, QStringLiteral(
"No processor with id %1 exists." ).arg( *a0 ).toUtf8().constData() );
733 void requestAuthOpenBrowser(
const QUrl &url )
const;
741 void requestAuthCloseBrowser()
const;
749 void abortAuthBrowser();
899 void sslErrorsOccurred( QNetworkReply *,
const QList<QSslError> &errors );
900 void sslErrorsHandled( QNetworkReply *reply );
919 void authRequestOccurred( QNetworkReply *, QAuthenticator *auth );
920 void authRequestHandled( QNetworkReply *reply );
941 void onReplyFinished( QNetworkReply *reply );
943 void onReplyDownloadProgress( qint64 bytesReceived, qint64 bytesTotal );
945 void onReplySslErrors(
const QList<QSslError> &errors );
947 void handleSslErrors( QNetworkReply *reply,
const QList<QSslError> &errors );
950 void onAuthRequired( QNetworkReply *reply, QAuthenticator *auth );
951 void handleAuthRequest( QNetworkReply *reply, QAuthenticator *auth );
953 void syncCookies(
const QList<QNetworkCookie> &cookies );
956 QNetworkReply *
createRequest( QNetworkAccessManager::Operation op,
const QNetworkRequest &req, QIODevice *outgoingData =
nullptr )
override;
960 void afterSslErrorHandled( QNetworkReply *reply );
963 void afterAuthRequestHandled( QNetworkReply *reply );
965 void pauseTimeout( QNetworkReply *reply );
966 void restartTimeout( QNetworkReply *reply );
967 static int getRequestId( QNetworkReply *reply );
969 QList<QNetworkProxyFactory *> mProxyFactories;
970 QNetworkProxy mFallbackProxy;
971 QStringList mExcludedURLs;
972 QStringList mNoProxyURLs;
973 bool mUseSystemProxy =
false;
974 bool mInitialized =
false;
975 bool mCacheDisabled =
false;
978 std::unique_ptr< QgsSslErrorHandler > mSslErrorHandler;
980 QSemaphore mSslErrorHandlerSemaphore;
983 std::unique_ptr< QgsNetworkAuthenticationHandler > mAuthHandler;
985 QSemaphore mAuthRequestHandlerSemaphore;