[QGIS-Developer] enabling proxy for wms/wmts layer

Richard Duivenvoorde rdmailings at duif.net
Tue Mar 15 00:26:09 PDT 2022


On 3/14/22 19:47, Lucia Kadlecova via QGIS-Developer wrote:
> Hello,
> I would like to ask how to enable proxies when adding WMTS via WMS. On server where I run standalone QGIS python to access the WMTS I need to execute below commands to be able connect from server to net.
> 
> export http_proxy=http://xx.xx.xx.xx:8080/ <http://xx.xx.xx.xx:8080/>
> export https_proxy=https://xx.xx.xx.xx:8080/ <https://xx.xx.xx.xx:8080/>
> 
> I tried to add to below code via subprocess.run, but no success
> 
> |projectName = 'wms_load' project = QgsProject.instance() urlWithParams = 'crs=EPSG:3857&dpiMode=7&format=image/png&layers=geolandbasemap&styles=normal&tileMatrixSet=google3857&url=https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml <https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml>' rlayer = QgsRasterLayer(urlWithParams, 'geolandbasemap', 'wms') if not rlayer.isValid(): print("Layer failed to load!") else: print('Layer loaded') project.addMapLayer(rlayer) project = QgsProject.instance() project.write() qgs.exitQgis()|

Hi Lucia,

For what I know QGIS is not picking up the proxies from the environment. It is using
https://qgis.org/pyqgis/3.6/core/QgsNetworkAccessManager.html for all network requests, and (like you have to explicitly set a proxy in settings/network in QGIS) you probably have to use/set a 'proxyFactory' in your code.

Not 100% sure about this, and I agree that it would be better/nice if Qt/QGIS would pick up proxy settings from the environment (and maybe it does, can you ask in you script for that?).

Regards,

Richard Duivenvoorde


More information about the QGIS-Developer mailing list