7

I'm attempting to debug an issue with a remote ArcGis Server's WMTS as seen from GeoServer. I can see the requests GeoTools is making (because they throw an error and get logged). However the service works in QGIS (3.0 if that makes a difference) and I would like to know what the difference in the requests is.

I know I can set up wireshark or some such but I hoped there was a way of getting QGIS to log the URLs being requested directly via a flag or setting?.

  • Can't see a way, or an option, the other possibility is to set up a logging http proxy and point QGIS to that via the Network config dialog. But wireshark might be easier. Maybe you need a QGIS compiled with the debug option? – Spacedman May 12 '18 at 14:21
6

It seems there is no easy way to do this in QGis, so I solved it by adding a simple proxy, Python Logging Proxy which "does what it says on the can".

I modified the file LoggingProxyHTTPHandler.py to comment out line 105

print response.content

since I didn't need to see the "contents" of the images being sent back. Then to run the proxy all you do is

python ./proxy.py

And in QGis go to Settigns->Options->Network and turn on the use proxy for web access and fill in localhost and 8000 for the Host and Port.

enter image description here Then every time QGis requests a WMTS (or other web image) you will see the request and the response in the terminal.

  • This will work with requests made with the QgsNetworkAccessManager only I guess, not with plugins using another function such as using urllib or requests. – etrimaille Oct 18 '18 at 14:09
  • I would hope all requests went through the AccessManager, otherwise people with proxies are stuffed. – Ian Turton Oct 18 '18 at 16:37
2

For QGIS 3.6 and up

For QGIS 3.6 and more recent versions, there is a useful plugin called QGIS Network Logger, developed by Richard Duivenvoorde.

It is much easier to check the requests sent out by QGIS (sent via the QgsNetworkAccessManager).

enter image description here

1

Just want to share two other proxies I used with @Ian's approach on Linux:

  1. squid: text logs, should be sufficient for general use

    https://help.ubuntu.com/lts/serverguide/squid.html.en

    default port: 3128

  2. fiddler: GUI proxy, supports tile previews

    https://www.telerik.com/blogs/fiddler-for-linux-beta-is-here

    default port: 8888

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.