2013-05-04 58 views
1

我目前正在研究一些使得httppost獲得響應的功能。如何將流讀取器響應轉換爲類對象?

這裏是我目前正在使用的代碼:

public string SubmitRequest(string postUrl, string contentType, string postValues) 
    { 
     var req = WebRequest.Create(postUrl); 
     req.Method = "POST"; 
     req.ContentType = contentType; 

     try 
     { 
      using (var reqStream = req.GetRequestStream()) 
      { 
       var writer = new StreamWriter(reqStream); 
       writer.WriteLine(postValues); 
      } 

      var resp = req.GetResponse(); 

      using (var respStream = resp.GetResponseStream()) 
      { 
       var reader = new StreamReader(respStream); 
       return reader.ReadToEnd().Trim(); 
      } 

     } 
     catch(WebException ex) 
     { 
      // do something here 
     } 

     return string.Empty; 
    } 

功能字符串格式返回XML,例如:這需要被轉換成一個類的對象

<result> 
    <code>Failed</code> 
    <message>Duplicate Application</message> 
</result> 

- 但我不知道如何以正確的方式去解決這個問題。

任何意見讚賞。

+0

你知道你可以得到什麼樣的回答嗎?我的意思是可以在響應中出現哪些節點 – ppetrov 2013-05-04 16:54:14

+1

請仔細閱讀此SO帖子:http://stackoverflow.com/questions/10518372/how-to-deserialize-xml-to-object希望有所幫助。 – 2013-05-04 17:12:38

回答

2

您想要將返回的xml反序列化爲對象。這是一個基本的例子:

//m is the string based xml representation of your object. Make sure there's something there 
if (!string.IsNullOrWhiteSpace(m)) 
    { 
     //Make a new XMLSerializer for the type of object being created 
     var ser = new XmlSerializer(typeof(yourtype)); 

     //Deserialize and cast to your type of object 
     var obj = (yourtype)ser.Deserialize(new StringReader(m)); 

     return obj ; 
    } 
+0

聽起來不錯 - 將在早上測試。謝謝 – dotnetnoob 2013-05-04 17:30:33

+0

工作 - 謝謝Mattbo! – dotnetnoob 2013-05-05 10:34:02