BoardGameGeekApiClient.Service.ApiDownloaderService.ReadApiResult C# (CSharp) Method

ReadApiResult() private static method

private static ReadApiResult ( Uri requestUrl, System.Xml.Linq.XDocument &data ) : void
requestUrl System.Uri
data System.Xml.Linq.XDocument
return void
        private static void ReadApiResult(Uri requestUrl, out XDocument data)
        {
            // Due to malformed header I cannot use GetContentAsync and ReadAsStringAsync :(
            // UTF-8 is now hard-coded...

            //wait 500ms before each read to avoid BGG block
            Thread.Sleep(500);
            data = null;
            while (data == null)
            {
                var request = WebRequest.CreateHttp(requestUrl);
                request.Timeout = 10000;
                using (var response = (HttpWebResponse)(request.GetResponse()))
                {
                    if (response.StatusCode != HttpStatusCode.OK) continue;

                    using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        data = XDocument.Parse(reader.ReadToEnd());
                    }
                }
            }
        }
    }