Skip to main content
3 of 3
deleted 1 character in body; edited tags
Brock Adams
  • 13k
  • 5
  • 39
  • 64

Odd String Format Result from API Call

I'm just getting started messing around with the SO API. I haven't worked with JSON before, and I am getting a strange result from a basic call (No API Key).

WebClient stackClient = new WebClient();
string result = stackClient.DownloadString(@"http://api.stackoverflow.com/0.8/stats");

The result is:

‹í½I–%&/mÊ{JõJ×àt¡€$Ø@ìÁˆÍæ’ìiG#)«*ÊeVe]f@Ìí¼÷Þ{ï½÷Þ{ï½÷º;N'÷ßÿ?\fdlöÎJÚÉž!€ªÈ?~|?"~ñoœ¤éGM›µEÓÓæ£Gé÷ðQšþbùA߶U›•¿ÿ/ZçÔ¢Z¢É§Ÿ~ºs0ê´X/³es•×ùŒšìîܸ{¯ÛDÄîýýƒûûÝÓj±È—-Zì=ع·ói¯—˪͇vwwöº_O²Ù…|ÿpÿþnþº‘î÷öïïݻᄉ£ûýWyýû/ŠåºÍ©ÙÎøÁ×H±›ìŽ?õî{@¼ž²Uñû_ꌾ³T¦oܧíŒ>²¯ÐWu~Y˜ïvÇ;ãݽ{ûãûŸ>8øÈ4ú%ò ÿøþoœü’äÿNïþìÚ

I'm not sure what sort of formatting I'm missing, but this looks like I'm missing something obvious, it just isn't obvious to me.

Any thoughts?

Edited to add a bit of code to decompress the API data:

WebClient stackClient = new WebClient();
byte[] compressedData = stackClient.DownloadData(@"http://api.stackoverflow.com/0.8/stats");
int messageLength = BitConverter.ToInt32(compressedData, 0);

        using (MemoryStream ms = new MemoryStream(compressedData,0,compressedData.Length))
        {
            byte[] decompressedData = new byte[messageLength];
            using (GZipStream gZip = new GZipStream(ms, CompressionMode.Decompress))
            {
                gZip.Read(decompressedData, 0, decompressedData.Length);
            }

            string result = Encoding.UTF8.GetString(decompressedData);
        }
denny
  • 163
  • 5