我正在使用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();
答案 0 :(得分:2)
我怀疑这与你在流上创建2个读者(XmlReader
和StreamReader
)有关。 XmlReader
一旦创建就开始缓冲流中的数据,所以当StreamReader
从同一个流开始读取数据时,它会错过{{1}缓冲的数据部分。 }}
您不能在同一个流上使用2个阅读器,它们会相互冲突。