Response.GetResponseStream()转义双引号

问题描述:

Response.GetResponseStream()与正因为如此的XmlReader返回{无}转义字符Response.GetResponseStream()转义双引号

<?xml version=\"1.0\" encoding=\"utf-8\"?>

返回XML。请帮助?

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Accept = "*/*"; req.Headers.Add("UA-CPU", "x86"); req.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; MS-RTC LM 8)"; HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); XmlTextReader xRead = new XmlTextReader(resp.GetResponseStream());

xRead为{无}如果我的电话是从客户端脚本调用Web Service。当我使用一个StreamReader检查响应流

StreamReader reader = new StreamReader(resp.GetResponseStream() return reader.ReadToEnd()

我看到转义字符

<?xml version=\"1.0\" encoding=\"utf-8\"?>

+0

上下文会有很大帮助,例如关于如何获得响应本身的代码。 – mgbowen 2009-10-14 22:49:38

+0

你确定这不仅仅是调试器把它们放入?一个代码片段可能会规定出 – 2009-10-14 22:56:57

+0

在构造StreamReader之后是否在调试器中检查返回的值,或将其输出到控制台/窗体?如果你在调试器中查看它,它将会跳过引号,还有另一个潜在的问题。 – mgbowen 2009-10-14 23:09:04

如果没有实际操作中得到响应代码示例,我会运行一个简单的String.Replace("\\"", "\"");。如果你的反应很大,它可能会效率低下,但这是快速修复。

+1

你说得对,它是“快速修复”,但这种bludgeoning-the-values-fit-你想要什么,而不是为什么,他们错误的态度会让你陷入困境,你应该经常尝试找出错误的根源,而不是隐藏它们,因为如果它们没有被正确地修复,它们总是会回来咬你。 – rmeador 2009-10-14 23:00:25

+0

这是没有代码示例,实际上不知道发生了什么,这是我可以提供给他的信息最好的:/如果提供更多信息,我会更新答案。 – mgbowen 2009-10-14 23:01:34