WPF - Web请求被截断

时间:2010-12-10 19:04:14

标签: wpf xml httpwebrequest httpwebresponse

我正在使用bing api请求一些结果..当我运行我的代码时,响应字符串被截断,以便它缺少前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 个答案:

答案 0 :(得分:2)

我怀疑这与你在流上创建2个读者(XmlReaderStreamReader)有关。 XmlReader一旦创建就开始缓冲流中的数据,所以当StreamReader从同一个流开始读取数据时,它会错过{{1}缓冲的数据部分。 }}

您不能在同一个流上使用2个阅读器,它们会相互冲突。