I ported all of my integration tests to phone 7, which is a flavor of silverlight 3, and found that stackauth is not forcing gzip as expected.
while this simply means that I need to check the first 2 bytes of the result to determine if it is gzipped, this does violate the official api protocol.
Note: wp7/sl3 do not send 'accept-encoding' so this seems to indicate that whatever hoops you have made the other endpoints jump through to force gzip, stackauth was missed.
The reason this became an issue for me is that I cannot read response headers to determine the 'content-encoding' of the response and was relying on the previous assertion that all data will be compressed and when it came back plain text... BOOM!.
As a reference to others, here is how to get what you need regardless of the encoding of the stream.
byte[] data = response.GetResponseStream().ReadFully();
// ReadFully is an extension scribbled out by some guy named skeet
// http://www.yoda.arachsys.com/csharp/readbinary.html
if (data.Length > 2 && data[0]==31 && data[1]==139)
{
using (var ms = new MemoryStream(data))
using (var gzip = new GZipInputStream(ms))
using (var reader = new StreamReader(gzip))
{
json = reader.ReadToEnd();
}
}
else
{
json = Encoding.UTF8.GetString(data, 0, data.Length);
}