【发布时间】:2014-08-22 23:48:44
【问题描述】:
我在获取 HttpWebResponse 并将其设置为 XmlReader 时遇到了问题,到目前为止,我已经查看了以下示例:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
XmlReader xmlReader;
if (response != null)
{
StreamReader sr = new StreamReader(response.GetResponseStream());
//string st = sr.ReadToEnd().Trim();
xmlReader = XmlReader.Create(sr);
}
但问题是 xmlReader 没有填满整个响应,我得到的部分响应甚至不是有效的 XML(某些节点上没有结束标签),这会导致稍后尝试从该变量中读取时出现问题.
但如果我取消注释以下行以进行测试:
string str = sr.ReadtoEnd().Trim();
变量 str 填充了整个 XML 响应,但显然我需要 XmlReader 形式的它,以便我可以在其上运行 LINQ to XML。
我的问题是,确保在 XmlReader 对象中获得整个响应的最佳方法是什么?
【问题讨论】:
-
你可以试试 UTF-8 编码: StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);见msdn.microsoft.com/en-us/library/…
标签: c# xml linq xmlreader httpwebresponse