Skip to content

Commit

Permalink
allow plain/text error message for XYZ raster tile
Browse files Browse the repository at this point in the history
also a filter for XYZ vector tile on the content of the reply (error message only if plain text)
  • Loading branch information
vcloarec authored and nyalldawson committed Jan 19, 2022
1 parent 00532ec commit 3620c99
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
6 changes: 5 additions & 1 deletion src/core/qgstiledownloadmanager.cpp
Expand Up @@ -109,15 +109,19 @@ void QgsTileDownloadManagerReplyWorkerObject::replyFinished()
QgsDebugMsgLevel( QStringLiteral( "Tile download manager: internal reply finished: " ) + mRequest.url().toString(), 2 );

QNetworkReply *reply = qobject_cast<QNetworkReply *>( sender() );
QByteArray data = reply->readAll();;
QByteArray data;

if ( reply->error() == QNetworkReply::NoError )
{
++mManager->mStats.networkRequestsOk;
data = reply->readAll();
}
else
{
++mManager->mStats.networkRequestsFailed;
const QString contentType = reply->header( QNetworkRequest::ContentTypeHeader ).toString();
if ( contentType.startsWith( QStringLiteral( "text/plain" ) ) )
data = reply->readAll();
}

emit finished( data, reply->error(), reply->errorString() );
Expand Down
1 change: 0 additions & 1 deletion src/core/vectortile/qgsvectortileloader.cpp
Expand Up @@ -132,7 +132,6 @@ void QgsVectorTileLoader::tileReplyFinished()
{
if ( reply->error() == QNetworkReply::ContentAccessDenied )
{

if ( reply->data().isEmpty() )
mError = tr( "Access denied" );
else
Expand Down
10 changes: 9 additions & 1 deletion src/providers/wms/qgswmsprovider.cpp
Expand Up @@ -4552,8 +4552,16 @@ void QgsWmsTiledImageDownloadHandler::tileReplyFinished()

if ( reply->error() == QNetworkReply::ContentAccessDenied )
{
const QString contentType = reply->header( QNetworkRequest::ContentTypeHeader ).toString();

QString errorMessage;
if ( contentType.startsWith( QStringLiteral( "text/plain" ) ) )
errorMessage = reply->readAll();
else
errorMessage = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();

mError = tr( "Access denied: %1" ).
arg( reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString() );
arg( errorMessage );
}
}
}
Expand Down

0 comments on commit 3620c99

Please sign in to comment.