WPF - Web请求被截断
问题描述:
我使用bing api来请求一些结果..当我运行我的代码时,响应字符串被截断,以至于它缺少前10-50个字符..当我粘贴完全相同请求在浏览器中返回结果就好..WPF - Web请求被截断
这是我的代码..我在做什么错了?
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();
答
我怀疑这是关系到你在流(XmlReader
和StreamReader
)创建2个读者的事实。 XmlReader
开始从流中缓存数据,因此当StreamReader
开始从同一个流中读取数据时,它会错过XmlReader
缓冲的部分数据。
您不能在同一个流中使用2个阅读器,它们会相互冲突。
为什么不尝试WebClient.DownloadString()来代替。它更干净。并且可以让你编写更简单的代码。这意味着更少的错误。 – decyclone 2010-12-10 19:07:46