My app uses HTTP to download race course marks as a JSON string with a call like http://raceqs.com/api/gpx.php?pebbleGuid=13a9bf459c69b278bf5a7afc348f1b7d
It expects to receive a JSON array of objects.
On a) the Garmin watch emulator and b) iOS, it succeeds.
On Android, it fails, receiving null from the getWebRequest call.
Initially I suspected that Android GCM was failing to recognize the JSON, so to explore that, I created the JSON in a text file on my serverhttp://gpsanimator.com/raceQs/test.json and retrieved that instead of calling gpx.php, then the transfer worked, so that was not the problem
The app on the watch uses a Garmin call getWebRequest which is executed inside the Garmin Connect Mobile (GCM) app on the phone.
Since the app fails when the packet is GZIP-encoded, but runs fine when the packet is not GZIP-encoded, I conclude that GCM on Android failing to decode the GZIP-encoded packets.
And since the app runs fine on both Sim and iOS, and I can see that the Sim is NOT accepting GZIP-encoding I conclude that they're receiving clear, not GZIP-encoded packets.
The code and detailed evidence are here