WPF - веб-запрос усекается - PullRequest
       7

WPF - веб-запрос усекается

0 голосов
/ 10 декабря 2010

Я использую API-интерфейс bing для запроса некоторых результатов. Когда я запускаю свой код, строка ответа усекается, поэтому в ней пропускаются первые 10-50 символов. результаты просто отлично ..

Вот мой код .. что я делаю не так?

            string AppId = "My APP ID HERE :O ";
        string url = "http://api.search.live.net/xml.aspx?Appid={0}&sources={1}&query={2}";
        string completeUri = String.Format(url, AppId, "web", validateforweb(Artist) + "%20" + validateforweb(Song) + "%20" + "Lyrics");
        HttpWebRequest webRequest = null;
        webRequest = (HttpWebRequest)WebRequest.Create(completeUri);
        HttpWebResponse webResponse = null;
        webResponse = (HttpWebResponse)webRequest.GetResponse();
        XmlReader xmlReader = null;
        Stream s = webResponse.GetResponseStream();
        xmlReader = XmlReader.Create(s);
        StreamReader reader;
        reader = new StreamReader(s);
        string str = reader.ReadToEnd();

1 Ответ

2 голосов
/ 10 декабря 2010

Я подозреваю, что это связано с тем, что вы создаете 2 считывателя в потоке (XmlReader и StreamReader). XmlReader начинает буферизацию данных из потока, как только вы его создаете, поэтому, когда StreamReader начинает чтение из того же потока, он пропускает часть данных, которые были буферизованы XmlReader.

Вы не можете использовать 2 считывателя в одном потоке, они будут конфликтовать друг с другом.

...