2009-10-14 127 views
0

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

回答

0

如果沒有實際操作中得到響應代碼示例,我會運行一個簡單的String.Replace("\\"", "\"");。如果你的反應很大,它可能會效率低下,但這是快速修復。

+1

你說得對,它是「快速修復」,但這種bludgeoning-the-values-fit-你想要什麼,而不是爲什麼,他們錯誤的態度會讓你陷入困境,你應該經常嘗試找出錯誤的根源,而不是隱藏它們,因爲如果它們沒有被正確地修復,它們總是會回來咬你。 – rmeador 2009-10-14 23:00:25

+0

這是沒有代碼示例,實際上不知道發生了什麼,這是我可以提供給他的信息最好的:/如果提供更多信息,我會更新答案。 – mgbowen 2009-10-14 23:01:34