HttpWebRequest не загружает все данные - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь загрузить XML-файлы, используя httpwebrequest, используя приведенный ниже код на основе этого примера здесь. Теперь это работает частично, поскольку не загружает все содержимое XML-файла. Есть идеи почему?

 public void download(String url)
    {
        HttpWebRequest request = HttpWebRequest.CreateHttp(url);
        request.AllowReadStreamBuffering = false;
        request.Method = "GET";
        request.BeginGetResponse(a =>
        {
            StringBuilder data=null;
            using (WebResponse response = request.EndGetResponse(a))
            {
                int expected = (int)response.ContentLength;

                try
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                    {
                        int read = 0;
                        data = new StringBuilder(expected);
                        char[] buffer = new char[1024];

                        while ((read = reader.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            data.Append(new string(buffer, 0, read));
                        }
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine("exception caught: " + ex.Message);
                }
            }
            System.Diagnostics.Debug.WriteLine("Got \n " + data.ToString());
        }, null);
    }

1 Ответ

0 голосов
/ 12 марта 2012

Если вы получаете только XML, вы можете использовать XDocument.Load (поток) , чтобы загрузить результат в XDocument экземпляр

Ваша проблема можетбыть с примененной кодировкой, и этот метод должен решить любую проблему кодировки!

...