如何读取HTTP POST接口生成的xml响应

时间:2013-01-15 08:57:48

标签: asp.net xml httpwebrequest

我生成了对此处提到的某个API的请求,用于发送短信http://help.voxeo.com/go/help/evolution.sms.postapi

请求生成XML响应,如下所示

 <rsp stat="ok">

 <success msg="accepted" transactionid="2e47fe224d25559a696a7bdddec1828b" messageid="cf0d21f067e5b386a2e042134687eb5c"/>

  </rsp>

我想读一下如果rsp stat在响应中是好的还是失败我该怎么办呢。

这是前两行如何从响应流中获取特定的xml标记

 HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();

 Stream content = response.GetResponseStream();

2 个答案:

答案 0 :(得分:0)

为什么不使用XmlDocument来解析XML。例如,

using(var reader = new StreamReader(content))
{
   var doc = new XmlDocument();
   doc.LoadXml(reader.ReadToEnd()); 
   // you may want to compare case in-sensitive
   if (doc.DocumentElement.Attributes["stat"].Value == "ok") 
   {
       // success
   }
}

(还有Load方法可以直接从流加载,但我不确定它是否在开头需要xml声明)

另一个替代方法是使用XmlReader,以防响应可能很长,并且您希望在可用时尽快解析初始位。

答案 1 :(得分:0)